Не удается получить желаемое БПФ для сигма-дельта модулятора

У меня есть сигма-дельта модулятор второго порядка в simulink matlab. он работает нормально, я применил синусоидальный сигнал к входу с Vp - p = 1V, и у меня такая же форма сигнала (с небольшой задержкой) после фильтрации нижних частот на выходе:

Я получаю это для fft: fft

sampling freq=256 MHz
input freq= 4MHz

Период выборки и тактов удержания составляет 1/256MHZ А также время выборки для блока adc_out, показанного на рисунке, составляет 1/256MHz И я больше ничего не трогал.

И я рассчитал входную частоту на основе этой формулы:

fin=(prime/N)* sampling freq

Простое число — это простое число, я выбрал 257 N — количество точек fft, я выбрал 16384 частоту дискретизации 256MHz, поэтому я получил 4 МГц как лучшую входную частоту, и эти соображения, после fft, должны были дать мне хороший импульс на 4 МГц и форменный шум на более высоких частотах, как вы можете видеть, у меня нет желаемого импульса на 4 МГц! и я просто не знаю, почему!!


person Fateme    schedule 20.06.2017    source источник


Ответы (1)


Просто взглянув на изображение, я бы сказал, что это оконная проблема. В частности, поскольку вы не используете явное окно, вы используете блочную функцию. БПФ блока равен sin(x)/x, что соответствует вашему реальному ответу.

person MSalters    schedule 20.06.2017
comment
Да, скорее всего дело в этом. Но как решить? то, что я сделал, кажется мне правильным, потому что на основе теории сигма-дельта модулятора уровень шума формируется в сторону более высоких частот и является самым низким на частоте 4 МГц, но тон сигнала там отсутствует! @MSalters - person Fateme; 20.06.2017
comment
@Fateme: почти любая оконная функция должна помочь. Умножьте x на это окно перед вызовом fft(x). - person MSalters; 20.06.2017
comment
Я применил окно Ханна, которое, я полагаю, лучше всего подходит для типов сигма-дельта модуляторов, и все же у меня нет моего тона! код: clc, закрыть все x=adc_out; w=hann(16385,'периодический'); х=х.*ш; f=(abs(fft(x)))/16384; dbpsd=20*log10(f); freq=256*linspace(0,0.5,16384/2); график (частота, дбпсд (1: 1: 16384/2)) - person Fateme; 21.06.2017
comment
@Fateme: жаль слышать, но это может быть достойный новый вопрос (с графиками до и после) - person MSalters; 22.06.2017