LINUX.ORG.RU

Сообщения omegatype

 

Алгоритмы и структуры данных

Форум — Desktop

Уважаемые специалисты! Посоветуйте, пожалуйста, книгу/курс по алгоритмам и структурам данных!

Требования:

  • достаточно фундаментальное изложение материала;
  • актуальность;
  • если на английском - не проблема, может, даже лучше.

Во много хотелось бы повысить собственную квалификацию и систематизировать знания для интервью. Грубо говоря, если бы вы нанимали сотрудника и в требованиях писали «знание основных алгоритмов и структур данных» - в рамках какой литературы/курса вы бы это требование предъявляли?

 , ,

omegatype
()

Непрерывное чтение в pyrtlsrd?

Форум — Development

Уважаемые специалисты по всему!

Задача: организовать непрерывную запись отсчетов с RTL SRD устройства, обработку сигнала и отображение результата.

Хочу реализовать это при помощи pyrtlsrd, pyqt и pyqtgraph.

В pyrtlsrd есть пример стриминга на asyncio:

import asyncio
from rtlsdr import RtlSdr

async def streaming():
    sdr = RtlSdr()

    async for samples in sdr.stream():
        # do something with samples
        # ...

    # to stop streaming:
    await sdr.stop()

    # done
    sdr.close()

loop = asyncio.get_event_loop()
loop.run_until_complete(streaming())

Насколько я понимаю, он обеспечивает непрерывное чтение. Однако, если в итоге будет приложение на pyqt, то мне, по сути, не нужна очередь от asyncio, а хватит просто одного QThread, который будет сигналом отдавать в основной поток данные для отрисовки.

Вопрос 1: имеет ли смысл совмещать async/await синтаксис в Qt? Можно ли выполнение async def streaming подпихнуть в event loop от Qt?

Вопрос 2: Как организовать получение сигнала с srd непрерывно без async/await? Вот такой код гарантирует непрерывность?

def streaming():

    with closing(RtlSdr()) as sdr:  
        sdr.sample_rate = sample_rate = 240e3
        sdr.center_freq = fc = 101.5e6
        sdr.gain = 'auto'

        count = 0
        while True:
            # do something with samples
            # ...           
                
streaming()

Вопрос 3: вопрос вообще по-адресу? Разумеется, на ЛОРе есть всё, но, может, порекомендуете более целевой форум?

 , , ,

omegatype
()

Удаленно снять скриншот? Xlib: connection to refused by server

Форум — Desktop

Имеется рабочая станция, настроенная продавцом на работу в режиме: на самой станции ОС-гипервизор, в нем CentOS 5, видимо, с пробросом видеокарты. Со стороны система просто загружается и выводит приглашение на монитор, как обычно.

Пытаюсь настроить получение скриншота с системы (с клиентской - с CentOS 5-ого) по SSH по следующему алгоритму: непосредственно за компьютером логинюсь и смотрю переменные окружения:

$ printenv | grep DIS
$ DISPLAY=192.168.93.254:1

Далее на удаленной машине выполняю:

$ ssh name@vmhost 'xwd -root -display 192.168.93.254:1 | /usr/bin/convert - png:-' > /tmp/current.png

Xlib: connection to "192.168.93.254:1.0" refused by server
Xlib: No protocol specified
Пробую согласно Xlib: connection to ":0.0" refused by server Xlib: No protocol specified, но на шаге:
# xauth list 192.168.93.254:1
никакого вывода нет. Тупик. Подскажите, куда дальше копать?

 , , ,

omegatype
()

Помогите уменьшить отступы в между элементами в списке литературы (LaTeX, splitbib)

Форум — Desktop

Готовлю автореферат, борюсь за каждую страницу. Необходимо уменьшить отступы в списке литературы. MWE:

\documentclass{article}

\usepackage{splitbib}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
  @book{Knu86,
    author = {Knuth, Donald E.},
    year = {1986},
    title = {Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.},
  }
  @book{Knu86v2,
    author = {Knuthggg, Donald E.},
    year = {1986},
    title = {Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.},
  }
\end{filecontents}

\begin{document}

\cite{Knu86, Knu86v2}

\begin{category}[A]{First category}
\SBentries{Knu86,Knu86v2}
\end{category}

\bibliographystyle{utf8gost71u}
\bibliography{\jobname}
\end{document}

Пытался курить мануал: http://mirror.utexas.edu/ctan/macros/latex/contrib/splitbib/splitbib.pdf но пока без успеха.

 

omegatype
()

Софт для просмотра сигналов

Форум — Talks

Имеется аналоговый сигнал в cvs (несколько столбцов = несколько каналов измерения). Подскажите, какой программой (под онтопиком или даже оффтопиков) посмотреть этот сигнал во временной области с возможностью зуммирования и прокрутки?

 ,

omegatype
()

Возможно ли программно перезагрузить все from X import Y в Python?

Форум — Development

Здравствуйте!

Имеется следующий код:

import foo
from foo import bar

bar()  # выполняется функция версии 1

# вносим изменения в foo.py

reload(foo)

bar()  # выполняется по-прежнему функция версии 1

Вопрос: если предположить, что неизвестно, что именно импортировалось из foo при помощи конструкции «from foo import X», или же по какой-то причине не хочется следить за этим - можно ли программно обновить все импортированные так функции и классы?

 

omegatype
()

Подскажите как обновить tzdata на RHEL 3?

Форум — Admin

Народ, подскажите, пожалуйста, как на legacy-системе обновить tzdata? Вот тут https://www.rpmfind.net/linux/RPM/Distribs.html rhel 3 уже давно нет, какие ещё есть варианты?

 , ,

omegatype
()

digikam вешает систему (GUI?) намертво

Форум — Desktop

Народ, помогите, пожалуйста, разобраться в проблеме: запускаю digikam и через какое-то время система виснет — картинка замирает, курсор не двигается, если воспроизводилась музыка — начинают циклически воспроизводиться последние секунды полторы того, что играло.

Кажется, это происходит во время подготовки digikam-ом превью изображений. Перехожу в альбом, для которого нет превью, программа отрисовывает пустую сетку, и по ходу заполнения сетки превьюшками всё виснет. Но точно момент, когда проиходит зависание, установить не удаётся - для нескольких альбомов всё может быть нормально, а потом опять сбой.

Прямо сейчас работаю после перезагрузки reset-ом, в последний раз запустил digikam и свернул её окно, система всё-равно повисла.

Логи:
Xorg.0.log.old
journalctl —boot=-1

# uname -srvmpio
Linux 4.11.9-1-ARCH #1 SMP PREEMPT Wed Jul 5 18:23:08 CEST 2017 x86_64 unknown unknown GNU/Linux

 , , ,

omegatype
()

Привязать Cairo-dock launcher к конкретному окну терминала?

Форум — Desktop

Исходная задача: получить на cairo dock лаунчер для запуска jupyter notebook, который можно было бы с дока и закрыть.

Попробовал add custom launcher, где в поле command прописал 'jupyter notebook' и поставил галочку «run in a terminal». Но запускаемый таким образом терминал порождает свою собственную иконку на доке, а кастом лаунчер оказывается как бы не привязанным к окну. Соответственно повторный клик открывает еще одно окно терминала вместо того, что бы сворачивать существующее.

Есть ли способ привязать лаунчер к именно к тому окну терминала, который он запустил?

Разумеется, что бы при этом можно было пользоваться просто терминалом как обычно (то есть что бы новые окна терминалов имели свои пиктограммы, а привязанным к кастомному лаунчеру было только то окно, которое этот кастомный лаунчер запустил), не отдавая его эксклюзивно под эту функцию.

 ,

omegatype
()

Линейная алгебра на GPU в Python - текущее состояние дел?

Форум — Development

Преамбула: имеется вектор из 100e6 элементов, который необходимо нарезать на фрагменты размером N, применить к каждому фрагменту fft, а затем применить к ним ряд операций линейной алгебры (в тч. копирование, вырезание поддиапазона, так же в numpy как vstack, roll, conj, поэлементное произведение). Результирующий код на numpy выполняется порядка 5-10 минут на одном ядре core i5.

Есть мнение, что «matlab может в gpu из коробки, просто нажимаешь какую-то галочку и все выполняется на GPU, ну, по крайней мере, операции линейной алгебры над векторами легко»!

Вопрос к знатокам - действительно ли тулбокс параллельной обработки данных в матлабе настолько крут? Настолько, что можно сформировать параллельный алгоритм с минимальным редактированием кода?

Сейчас смотрю в сторону PyOpenCL, я правильно понимаю, что для этого необходимо изучить как бы другой язык? Язык написания kernel-ов?

Вот это читал - не очень ясно в контексте сабжа, где тут ниша именно вычислений? Theano?

UP 1: Видеокарта Radeon :)

Перемещено leave из desktop

 , , ,

omegatype
()

Портирование matlab-кода на python (частичное соответствие результатов)

Форум — Desktop

Есть несколько bin-файлов с сэмплами от осциллографа Agilent, файлы сохранены в формате осциллографа. По наследству достался код на MATLAB, который читает эти файлы так:

function FileReadTest
   file_name = '/path/to/file'
   m = memmapfile(file_name,'Format','single','Offset',164);
   disp(file_name)
   double(m.Data(1:10))
end

Что, кажется, соответствует оригинальным рекомендациям.

Мне необходимо читать эти же файлы в Python, «портировал» функцию следующим образом:

import numpy as np

file_name = '/path/to/file'

with open(file_name, 'r') as file:
    file.seek(164)
    print file_name
    print np.fromfile(file, np.float32, count=10)

А теперь начинаю вручную сравнивать результаты на разных bin-файлах и... где-то совпадает, а где-то нет! И это, как-то вгоняет в ступор, если бы результаты всегда расходились, было бы ясно. Кто подскажет?

 , , ,

omegatype
()

Первое приложение на PyQt

Галерея — Скриншоты

PyQt

Написал на праздниках, фактически, первое приложение на PyQt - spectranalysis, выложил исходники на GitHub. Сразу отмечу, что это pet project, цель которого в ознакомлении с инструментами.

Прошу покритиковать код.

Предыстория: несколько лет пишу софт для предприятия на C# и WinForms + PostgreSQL, так же экспериментальный софт на Django. Пользователей - примерно 15-20 человек, но коллег-программистов нет, так что воюю в поле один, и код мой никого не интересует. Это сильно огорчает.

Параллельно программирование требуется для моделирования в аспирантуре. На кафедре преимущественно matlab + word, но я как ренегат, практически все выполняю на python (в связке с numpy, scipy, matplotlib, Sage Math) + latex.

Хотелось бы в будущем, при наличии свободного времени, присоединиться к разработке какого-либо открытого проекта, попробовать себя в командной разработке. Пока времени мало, уделил пару дней этому тестовому проекту.

О программе: на вход (Ctrl+O) должен поступать wav-файл с отсчетами квадратурных компонент какого-нибудь радиосигнала. Пример можно скачать из открытого источника (например, wav-файл для сигнала такого-то или wav-файл для другого сигнала). Получив файл, программа строит график спектральной плотности мощности, и спектрограмму.

По ходу разработки, меня расстроило отсутствие в PyQt искаропки виджета для редактирования свойств объекта (в .net это называется PropertyGrid). Вот тут рекомендуют для этих целей использовать pyqtgraph, да, но мне казалось, что такой популярный инструмент должен быть в стандартной поставке.

P.S. Для запуска main.py в системе требуется: python3, pyqt5, numpy, scipy и matplotlib.

Окружение

Arch, KDE, Cairo Dock, KDE Connect. Последний очень удобен:

  • Быстро залить на телефон музыку/слить фотки - приятно, что, Connect, во-первых не лагает как MTP, во-вторых не требует подключения шнуром.
  • Отображает уведомления из мессенджеров и sms - очень удобно.
  • Ставит воспроизведение фильма на паузу при входящем звонке, по завершению звонка продолжает воспроизведение - чрезвычайно удобно!

Еще скриншоты: krusader, amarok, и традиционный скриншот. Эти же скриншоты на другом хостинге.

>>> Просмотр (2560x1440, 2114 Kb)

 , ,

omegatype
()

Специалистам по matplotlib: tight_layout не работает с plot_surface?

Форум — Desktop

Решил построить поверхность при помощи matplotlib вот так:

import numpy as np

import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = np.linspace(0, 10, 256)
y = np.linspace(0, 4, 128)

XX, YY = np.meshgrid(x, y)
ZZ = XX * YY

figure = plt.figure()

ax = Axes3D(figure)
surf = ax.plot_surface(XX, YY, ZZ, cmap='jet')
plt.colorbar(surf)
ax.set_xlabel('Very very very long X LABEL')
ax.set_ylabel('Very very very long Y LABEL')
plt.savefig('test.png')
plt.close()

В результате самый нижний край получается чуть-чуть обрезан, именно эта проблема показана на первом же рисунке в гайду по tight_layout, однако использование tight_layout в приведенном выше коде приводит к исключению:

import numpy as np

import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = np.linspace(0, 10, 256)
y = np.linspace(0, 4, 128)

XX, YY = np.meshgrid(x, y)
ZZ = XX * YY

figure = plt.figure()

ax = Axes3D(figure)
surf = ax.plot_surface(XX, YY, ZZ, cmap='jet')
plt.colorbar(surf)
ax.set_xlabel('Very very very long X LABEL')
ax.set_ylabel('Very very very long Y LABEL')
plt.tight_layout()
plt.savefig('test.png')
plt.close()
$ python2 test.py 
/usr/lib/python2.7/site-packages/matplotlib/figure.py:1742: UserWarning: This figure includes Axes that are not compatible with tight_layout, so its results might be incorrect.
  warnings.warn("This figure includes Axes that are not "
Traceback (most recent call last):
  File "test.py", line 20, in <module>
    plt.tight_layout()
  File "/usr/lib/python2.7/site-packages/matplotlib/pyplot.py", line 1387, in tight_layout
    fig.tight_layout(pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect)
  File "/usr/lib/python2.7/site-packages/matplotlib/figure.py", line 1752, in tight_layout
    rect=rect)
  File "/usr/lib/python2.7/site-packages/matplotlib/tight_layout.py", line 322, in get_tight_layout_figure
    max_nrows = max(nrows_list)
ValueError: max() arg is an empty sequence

Может, кто сталкивался с подобным? Сходу не удается нагуглить.

P.S. Судя по тому, что в matplotlib все не очень гладко log scale с 3d параллельно где бы еще под онтопиком просто построить поверхность по имеющемуся массиву numpy.

 ,

omegatype
()

Условный оператор в LaTeX - подскажите правильную организацию?

Форум — Desktop

В документе часто возникает необходимость вставлять рисунки кодом вида:

\begin{figure}[ht]
  \centering
  \includegraphics{...}
  \caption{...}
  \label{...}
\end{figure}

и пары рисунков разной высоты (при помощи вспомогательной таблица, как сказано тут), дабы упростить код и автоматизировать это дело, решил написать соответствующие команды, затруднение возникло при попытке добавить опциональный аргумент.

Для части рисунков необходимо задавать ширину, для других - нет. Имеющийся код:

% SinglePanelFigure:
%    width (optional)
%    path
%    caption
%    label
\newcommand{\SinglePanelFigure}[4][0]{
\begin{figure}[ht]
  \centering  
  \ifthenelse{0=#1}
      {\includegraphics{#2}}
      {\includegraphics[width=#1]{#2}}
  \caption{#3}
  \label{#4}
\end{figure}
}

Но при повытке использования:

\SinglePanelFigure   
    {1\linewidth}
    {...}
    {...}
    {...}

падает с кучей ошибок, начинающихся с "! Illegal unit of measure (pt inserted). <to be read again>".

Пока не готовил минимальный пример, иллюстрирующий ошибку, может тут что-то настолько очевидное, что знающим и так понятно?

P.S. Для вставки пар рисунков получился вот такой код:

\newcommand{\TwoPanelFigure}[4]{
\begin{figure}[ht]  
  \begin{minipage}[ht]{0.49\linewidth}
    \centering
    \includegraphics[width=\linewidth]{#1}
  \end{minipage}
  \hfill
  \begin{minipage}[ht]{0.49\linewidth}
    \centering
    \includegraphics[width=\linewidth]{#2}
  \end{minipage}
  \begin{minipage}[h]{1\linewidth}
    \begin{tabular}{p{0.49\linewidth}p{0.49\linewidth}}
    \centering а) & \centering б) \\
    \end{tabular}
  \end{minipage}
  \vspace*{-1cm}
  \caption{#3}
  \label{#4}
\end{figure}
}

 , ,

omegatype
()

Куда бежать с XMind?

Форум — Desktop

После длительного перерыва продолжил работу с XMind и обнаружил, что она более неюзабельна:

  • Интерфейс дико тормозит
  • Операции (пролистывание, перемещение элементов, масштабирование) карты дико тормозят
  • Интерфейс стал менее удобным (гигантские кнопки сверху, какая-то синяя цветовая палитра, «пляшущие» и не эстетичные элементы меню)
  • Печать карты и экспорт карты в изображение не работают (виснет на «Generating preview»)

Для примера прилагаю скриншот http://postimg.org/image/833tsms8h/ На нём как раз завис экспорт в png простейшей карты. Пиктограмма экспорта карты явно выглядит как «не пришей рукав», фон элементов меню несогласован.

Куда вы сбежали с XMind-а? Какая из альтернатив более напоминает сабж ранних версий?

P.S. Листок с цветными маркерами не предлагать.

Перемещено leave из talks

 ,

omegatype
()

Как поменять цветовую схему windows decoration breeze (kde5)?

Форум — Desktop

Можно ли в KDE5 поменять цвет окна заголовка для window decoration темы breeze?
Не нравится - тёмный цвет заголовка активного окна (вот на этом скриншоте видно, что активное окно имеет тёмный заголовок, сейчас в теме breeze так же)
Что хотелось бы - задать это цвет, например как этом скриншоте
P.S. Про возможность ставить другие темы и про oxygen - в курсе, хотя годные ссылки приветствуются.

 , , ,

omegatype
()

Роутер на OpenWRT

Форум — Linux-hardware

Народ, посоветуйте роутер какой-нибудь качественный, интересует опыт лоровцев.

  • От провайдера подключение через LAN по PPPoE на тарифе 35 МБит.
  • Никаких задач, кроме раздачи интернета нет.
  • Необходимость подключения как по WiFi, так и по LAN
  • Штабильность.

P.S. В сторону OpenWRT смотрю исключительно ради потенциально большей безопасности.

P.P.S. По форуму нашлись либо старые, либо неподходящие по ТЗ (типа требования adsl или высоких скоростей) темы.

cast Deathstalker, Dark_SavanT, Dimez, kraftello, pekmop1024, PaulCarroty

 , ,

omegatype
()

fluxbox: почему background не работает в overlay?

Форум — Desktop

Имеется:

$ cat .fluxbox/init  | grep overlay
session.styleOverlay:   /home/kate/.fluxbox/overlay

$ cat /home/kate/.fluxbox/overlay

background: solid
background.color: black

Однако в фон остаётся картинка от стиля. Замечено, что при каждом запуске автоматом генерируется

$ cat .fehbg 
feh  --bg-scale '/usr/share/images/fluxbox/debian-squared.jpg

Почему overlay не имеет приоритета?

 

omegatype
()

Как избавиться от ошибки (округления?) при вычислении угла (фазы) в numpy.angle?

Форум — Development

Имеется массив нулей:

N = 4
h = np.zeros(shape=N)
Как и предполагается, угол элементов в массиве - всегда нули:
np.angle(h)

array([ 0.,  0.,  0.,  0.])
А теперь, берём массив комплексных чисел и умножаем его на ноль, и получаем массив комплексных числе, у которых действительная и мнимая части равны нулю:
noise = np.fft.fft(np.random.normal(size=N))
noise * h
  	
array([ 0.+0.j,  0.-0.j, -0.+0.j, -0.+0.j])
И смотрим его угол:
angle(noise * h)

array([ 0.        , -0.        ,  3.14159265,  3.14159265])
Допустим, -0 еще терпим, но pi на графиках при этом смотрится ужасно - фаза «скачет» от 0 до pi там, где должна строго равняться нулю. Как этого избежать?

P.S. Разумеется, задача не стоит в том, как получить массив «нулей», в реальной задаче h нулевой только в некоторой области, в которой и хочется иметь нулевой угол.

P.P.S. А вот в Matlab такого не наблюдается:

N = 400;
noise = fft(randn(1, N));
h = zeros(1, N);
y = h .* noise;

max(abs(angle(y)))

Matlab постоянно выдаёт строгий ноль.

Перемещено mono из talks

 , ,

omegatype
()

Покритикуйте схему в TikZ

Форум — Talks

Понадобился набросок схемы квадратурного демодулятора.

Обычно, простые схемы, состоящие менее чем, скажем, из 10 элементов, я рисовал в MS Visio Dia, в этот раз решил попробовать TikZ, пока что получилось вот что:

\tikzset{
   block/.style    = {draw, thick, rectangle, minimum height = 3em, minimum width = 3em},
   sum/.style      = {draw, circle, node distance = 2cm}, % Adder
   input/.style    = {coordinate}, % Input
   splitter/.style    = {coordinate}, % Input
   output/.style   = {coordinate}, % Output
   triangle/.style = {draw, thick, regular polygon, regular polygon sides=3},
   border rotated/.style = {shape border rotate=90}
}

\begin{tikzpicture}[auto, thick, node distance=2cm, >=triangle 45]
  
 % Сплиттер гетеродина
 \draw node[splitter, name=heterodyne_splitter] {}; 

 % Фазовращатель
 \draw node[block, below of=heterodyne_splitter] (phase_shifter) {$\pi/2$};

 % Косинусный и синусный перемножители
 \draw node [sum, above of=heterodyne_splitter] (prod_cos) {\Large$\times$};
 \draw node [sum, below of=phase_shifter] (prod_sin) {\Large$\times$};

 % Входной сплиттер
 \draw node[splitter, name=input_splitter, left of=heterodyne_splitter, xshift=-1cm]{};

 % Входная клемма
 \draw (-5, 0)[right=-0.8mm] circle [radius=0.8mm];
 \draw node [input, name=input, left of=input_splitter] {}; 

 % Соединяем вход с перемножителями
 \draw (input) -- node {$ s(t) $}(input_splitter);
 \draw[->] (input_splitter) |- node {}(prod_cos);
 \draw[->] (input_splitter) |- node {}(prod_sin);

 % Соединяем гетеродин с перемножителями
 \draw[->] (heterodyne_splitter) -- node {$2\cos(2 \pi f_0 t)$}(prod_cos);
 \draw[->] (heterodyne_splitter) -- node {}(phase_shifter);
 \draw[->] (phase_shifter) -- node {$2\sin(2 \pi f_0 t)$}(prod_sin);

 % Усилитель после гетеродина
 \draw node[triangle, border rotated, right of=heterodyne_splitter] (heterodyne_amplifier) {$2$};
 \draw (heterodyne_amplifier) -- node {}(heterodyne_splitter);

 % Гетеродин
 \draw node[block, right of=heterodyne_amplifier] (heterodyne) {$f_0$};
 \draw[->] (heterodyne) -- node {}(heterodyne_amplifier);

 % Косинусный ФНЧ
 \draw node[block, right of=prod_cos, xshift=2cm] (lpf_cos) {LPF};
 \draw[->] (prod_cos) -- node {$s_i(t)$}(lpf_cos);

 % Синусный ФНЧ
 \draw node[block, right of=prod_sin, xshift=2cm] (lpf_sin) {LPF};
 \draw[->] (prod_sin) -- node {$s_q(t)$}(lpf_sin);

 % Выходные клеммы
 \draw (7,  2)node[splitter, name=output_cos]{};
 \draw (7, -4)node[splitter, name=output_sin]{};
 \draw[->] (lpf_cos) -- node {$i(t)$}(output_cos);
 \draw[->] (lpf_sin) -- node {$q(t)$}(output_sin);

 % Точки
 \draw  node at (0,0) {\textbullet};
 \draw  node at (-3,0) {\textbullet};

\end{tikzpicture}

Выгляди это дело так: http://postimg.org/image/5hsb8tuw1/

Это мой первый опыт с Tikz-ом и ощущения, откровенно говоря, паршивые. Не понимаю, то ли задачу я выбрал не ту, то ли решал не так, но нарисовать такую схему в tikz показалось на порядок дольше, чем мышкой растаскивать прямоугольнички по листу в wysiwyg-е.

Also, я не понимаю почему надпись 2 \sin( 2 \pi f_0 t) оказалась справа и как расположить её слева, так же сделано для косинуса?

 ,

omegatype
()

RSS подписка на новые темы