Сделал sqrt(), стало лучше здесь нечетная (видно что спектр немного размазан), здесь четная ... В общем все равно не идет примерно в 15 раз, можно тупо разделить на 15, но хотелось бы понять что это за 15 и откуда оно взялось ??? Я так понимаю что это число отсчетов/4, N/4=16 ...
В общем сделал SQRT()/16, и стало похоже на реальные значения https://scontent-arn2-1.xx.fbcdn.ne...=63dba5b2376da2cc0120f8c07d255ef2&oe=5B5A2F45 Спектр сигнала имеет уровень <1 ... что похоже на реальные значения, ...
Если я разложу сигнал в спектр , удалю ненужную составляющую, а потом сделаю обратное преобразование, то на выходе я получу сигнал с вырезанной несушкой ?????
Не совсем. Получите близкий к ожидаемому результат, но неточный, т.к. полное вырезание только одной составляющей подразумевает, что у вашего фильтра будет бесконечный отклик. Чтобы вырезать какую-то частоту в ноль, лучше воспользоваться рекурсивным notch-фильтром с высоким Q и бесконечной импульсной характеристикой (БИХ). По вычислительным затратам это будет куда более оправданным решением задачи.
Не совсем. ДПФ - это КИХ а не БИХ. Со всеми вытекающими последствиями. Вы бы учебник что-ли открыли. Чтобы неусушку удалить надо сигнал во временной области множить. Либо в частотной смещать.
Всё правильно, я это и имел в виду. Поэтому результат и получится неточным. При этом, КИХ-фильтры имеют очень плохое разрешение в области низких частот (которое можно компенсировать за счёт повышения порядка свёртки), а БИХ-фильтры лишены этого недостатка.
Andrei, умножение в одной области эквивалентно свертке в другой. Несущая в частотной области - это дельта функция, поэтому свертка с ней эквивалентна сдвигу. В частотной области это обозначает сдвиг спектра из отрицательных частот в 0 частоту т.к. спектр симметричен относительно 0. Для вычислений эффективнее умножать во временной области (модулировать), чем сворачивать в частотной, также нужно использовать ФНЧ фильтр для подавления паразитных частот после демодуляции. Это называется синхронное детектирование (демодуляция): Если бы ты работал на бесконечности то да, в противном случае когда ты убираешь компоненты из спектра - это равносильно тому что делать круговую свертку твоего куска и куска вырезаемой области. Можно просто дополнить нулями буфер до двойной длины (чтобы круговая свертка стала линейной), а потом просто складывать перекрывающиеся куски. Вообще удаление ненужных составляющих можно поручить к примеру режекторному БИХ фильтру, нарисуй диаграмму нулей и полюсов в z-плоскости для биквадратного фильтра (вообще самый простой случай БИХ фильтров), выведи коэффициенты и оценивай насколько хорошо/плохо вычленяется нужный сигнал. Можно объединить несколько каскадов если несколько частот нужно удалить или повысить добротность.
Вот еще вопрос, на входе сигнал то ведь +1 : -1, значит спектр тоже должен быть +1:-1 Так ведь ??? Куда отрицательная часть спектра девается ????
Спектр - это модуль, он не может быть отрицательным (если речь не о фазе, а об амплитуде). Когда ты производишь дискретное ПФ, то не забывай что у тебя энергия распределяется зеркально относительно половины частоты дискретизации, так что энергия делиться пополам.
Я так понял, что отладку на mega644 нужно сделать, с попробовать с частотой дискретизации 8-10 кГц...
При чём тут зеркальный канал приёма? Вам говорят, что АЧХ вашего DFT будет чётной функцией относительно постоянной составляющей, а ФЧХ - нечётной, так как входной сигнал вещественный.
А как сдвигать постоянную составляющую ?, допустим мне за НОЛЬ нужно взять 30 кГц. То есть смотреть смотреть спектр относительно 30 кГц, а не нуля. Дискретизация при этом 100 кГц ...
Ну так это, ежели данный спектр пропустить через ФНЧ, основной и зеркальный наложатся друг на друга, так как отрицательной частоты не бывает, ... собственно для SSB зеркальный канал является нежелательным, поскольку частота одного канала 0,3-3,4 кГц В технике DCR называется зеркальный канал приёма, в принципе прямое детектирование и есть дискретизация, аналогового сигнала,. Алгоритм DCR с приёмом зеркального канала 1.Полосовой фильтр 2.Дискретизация 3.ФНЧ Все это легко реализуется на FPGA(ЦПЛД) Altera, Xilinx, но мы не ищем легких путей, ... У меня идея фикс сделать это на AVR )))
То есть, если дискретизировать сигнал с частотой, 7 Мгц, а потом сделать DFT, то можно выделить каналы ТЧ, это чисто теоретически...., я пока не пробовал, ...
Спектр через ФНЧ не пропускается. Пропускается аналоговый сигнал. А спектр характеризует этот аналоговый сигнал. Если вы пропустите аналоговый сигнал через ФНЧ, то спектр его изменится таким образом, что положительные частоты выше частоты среза будут затухать, как и отрицательные частоты ниже отрицательной частоты среза. Но отрицательные частоты никуда не денутся. Вы сейчас говорите про временную составляющую, путая её с частотной. Отрицательные частоты - это математическая абстракция. Ну вперёд. Только теорию DSP надо подтянуть. Книгу вам уже посоветовали.