Здравствуйте)
Задача состоит в следующем: с 16 разрядного АЦП приходит сигнал, далее строится спектр сигнала. Проблема в том, что при моделировании в матлабе, боковые лепестки ниже 40дБ не опускаются, не зависимо от того числа уровней квантования, от того какое окно используется, а так же комплексный сигнал или действительный.Не могу разобраться почему так, и как это исправить.
Код программы:
clear
N=2048; % количество точек БПФ
m=1:1:N;
fs=1.536*10^6; T=1/fs; %определение частоты и периода дискретизации
%параметры для 1ого сигнала
f1=30000; F1=rand(1)*pi/2;
%параметры для 2ого сигнала
f2=40000; F2=30*pi/180;
%Задание амплитуд сигналов
Am_A1=1;
Am_B1=1;
%Задание самого сигнала
A1=Am_A1*cos(2*pi*f1*(m-1)*T+F1);
B1=Am_B1*sin(2*pi*f1*(m-1)*T+F1);
%B1=(m-1)*0;
A=A1
B=B1
%Задаем параметры окна
w = kaiser(N,18);
% Квантуем реальную составляющую сигнала
step=(max(A)-min(A))/16 %определяем шаг квантования
[index, quants]=quantiz(A, min(A): step: max(A), min(A): step: max(A)+ step)
signal_1=quants.*w';% умножаем отсчеты окна на отсчеты реальной части сигнала
%Строим реальную часть сигнала подоваемого с АЦП
N2=length(signal_1)
faxes=(0:(N2-1))*fs/(N2-1)
figure(1)
plot(faxes, signal_1)
%Квантуем мнимую составляющую сигнала
step1=(max(B)-min(B))/16 %определяем шаг квантования
[index, quants]=quantiz(B, min(B): step1: max(B), min(B): step1: max(B)+ step1)
signal_2=quants.*w';
%Строим мнимую часть сигнала подоваемого с АЦП
figure(2)
plot(faxes, signal_2)
%Задаем комплексный сигнал
D=signal_1+i*signal_2;
% Используя встроенную функцию БПФ строим спектр сформированного сигнала
S=fft(D);
S1=abs(S);
Spectr=S1/max(S1) % нормирование по оси У
F_log=20*log10(Spectr) % перевод в децибелы
N2=length(S1)
figure(3)
plot((0:N2-1)/(N2-1), F_log)
grid on