Полосовой фильтр (MatLab)
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Полосовой фильтр (MatLab)
Скажите, не пойму как получились такие фазовые спектры. У меня есть два строба которые накладываются на сигнал, два строба идут друг за другом. Скажите, почему глядя на фазовые спектры 1-ой последовательности стробов и 2-ой последовательности стробов фазы у них разные, за счет чего так? Фазовые спектры строились только на гармониках частоты повторения. Привожу амплитудные спектры и фазовые спектры
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Полосовой фильтр (MatLab)
ну наверно потому что стробы ваши сдвинуты по времени относительно друг друга
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Полосовой фильтр (MatLab)
У меня вопрос, я вот пропустил сигнал через АЦП, предварительно он прошел через полосовой фильтр с полосой 14 МГц, у меня получилась вот такая картинка она меня смущает так как получилось так что произошло наложение спектров, частота дискретизации 28 МГц и частота сигнала 63 МГц, скажите почему этот спектр получился так, что боковые лепестки, если смотреть относительно главного лепестка получились не одного уровня? Скажите может в этом случае необходимо уменьшить полосу пропускания фильтра, чтобы не было наложений?
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Полосовой фильтр (MatLab)
Можете подсказать?
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Полосовой фильтр (MatLab)
без матлаб кода ничего нельзя понять
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Полосовой фильтр (MatLab)
Код: Выделить всё
j=sqrt(-1); % Мнимая единица
U_m=input('Амплитуда сигнала (В): '); % Амплитуда сигнала
F_prom=63; % Промежуточная частота (МГц)
T_rep=10; % Период повторения импульсов (мкс)
F_rep=1/T_rep; % Частота повторения (МГц)
tau_imp=1; % Длительность импульса (мкс)
N_imp=input('Количество импульсов в пачке: '); % Количество импульсов в пачке
T_pach=N_imp*T_rep; % Длительность пачки импульсов (мкс)
F_Doppler=input('Доплеровский сдвиг частоты (кГц): ')*10^(-3); % Доплеровский сдвиг частоты (МГц)
fs=28; % Частота дискретизации (МГц)
dt=1/fs; % Шаг дискретизации (мкс)
tau_delay=input('Задержка отраженного сигнала (мкс): '); % Задержка отраженного сигнала (мкс)
N_sample_1=T_rep*fs; % Количество отсчетов в одном периоде
N_sample_imp=tau_imp*fs; % Количество отсчетов в импульсе
N_sample_signal=N_sample_1*N_imp; % Количество отсчетов в сигнале
sigma_noise=input('СКО шума: ');
figure(1)
% Аналоговый полосовой фильтр f0=63 МГц, полоса пропускания 14 МГц
Center_frequency=63; % Центральная частота аналогового полосового фильтра
[b,a]=butter(5,[2*pi*(Center_frequency-7) 2*pi*(Center_frequency+7)],'s'); % Синтез коэффициентов фильтра
f=0:F_rep:90; % Массив значений частоты (МГц)
h=freqs(b,a,2*pi*f); % Комплексный коэффициент передачи
plot(f,abs(h)) % График АЧХ полосового фильтра
grid on
H=tf(b,a); % Передаточная функция соответствующая своим коэффициентам числителя и знаменателя
figure(2)
% Принятый сигнал
t=(0:N_sample_signal-1)*dt;
u=U_m*cos(2*pi*(F_prom+F_Doppler)*t); % Массив значений принятого сигнала
s=find(t>=0&t<=tau_delay); % Формирование задержки сигнала
u(s)=0;
for n=0:N_imp-1
s=find(t>=tau_imp+n*T_rep+tau_delay&t<=n*T_rep+T_rep+tau_delay);
u(s)=0;
end
stem(t,u,'.') % График принятого сигнала
grid on
figure(3)
% Формирование шума. Нормальный случайный процесс
noise=sigma_noise*randn(1,length(t)); % Формирование шума
plot(t,noise) % График шума
grid on
figure(4)
% Сигнал на выходе АЦП
signal_with_noise=u+noise; % Аддитивная смесь сигнала и шума
signal_with_noise_ADC=lsim(H,signal_with_noise,t); % Смесь сигнала и шума на выходе АЦП
signal_with_noise_ADC=signal_with_noise_ADC'; % Изменение вектора столбца на вектор строку
plot(t,signal_with_noise_ADC) % График cмеси сигнала и шума на выходе АЦП
grid on
figure(5)
% Вычисление спектра сигнала на выходе АЦП(ADC)
NFFT=N_sample_signal; % Количество дискретных отсчетов сигнала
df=fs/NFFT; % Шаг по частоте в спектре (МГц)
f=(0:NFFT-1)*df; % Массив значений частот (МГц)
Spectr_exit_ADC=abs(fft(signal_with_noise_ADC,NFFT)); % Вычисление амплитудного спектра на выходе АЦП
plot(f,Spectr_exit_ADC) % График амплитудного спектра на выходе АЦП
grid on
xlim([0,fs]) % Интервал значений по оси x
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Полосовой фильтр (MatLab)
матлаб не знает что такое lsim. tf тоже не понятно зачем используется.
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Полосовой фильтр (MatLab)
Скажите я правильно понимаю, что цифровой полосовой фильтр должнен иметь две АЧХ. После того как я оцифровал сигнал с частотой дискретизации 28 МГц, сигнал у меня идет с частотой 7 МГц, поступает на вход цифрового фильтра, какая должна быть АЧХ фильтра?
Картинка цифрового полосового фильтра
Код: Выделить всё
Center_frequency=7; % Центральная частота цифрового полосового фильтра
[b,a]=butter(5,[2*pi*(Center_frequency-5) 2*pi*(Center_frequency+5)],'s'); % Синтез коэффициентов фильтра
f=0:F_rep:28; % Массив значений частоты (МГц)
h=freqs(b,a,2*pi*f); % Комплексный коэффициент передачи цифрового фильтра
plot(f,abs(h)) % График АЧХ полосового фильтра
-
- Сообщения: 64
- Зарегистрирован: 11 сен 2015, 23:37
Re: Полосовой фильтр (MatLab)
Я вот написал код в матлабе, скажите при каждом запуске выходит предупреждение, я даже не знаю повлияет ли это на цифровую обработку сигнала?
Код: Выделить всё
enter_frequency=21; % Центральная частота аналогового полосового фильтра
[b,a]=butter(12,[2*pi*(Center_frequency-5) 2*pi*(Center_frequency+5)],'s'); % Синтез коэффициентов аналогового фильтра
[bz,az]=impinvar(b,a,fs);
[hz,wz]=freqz(bz,az,[],28,'whole'); % Комплексный коэффициент передачи цифрового фильтра
h=freqs(b,a,2*pi*wz); % Комплексный коэффициент передачи аналогового фильтра
plot(wz,abs(h),':') % График ЧХ аналогового фильтра
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Полосовой фильтр (MatLab)
Что за предуреждение?