• 大小: 35.96MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-22
  • 语言: 其他
  • 标签: 小数时延  

资源简介

《优化阵列信号处理(上册)》小数延迟FIR滤波器设计,混合范数准则FIR滤波器设计

资源截图

代码片段和文件信息

%% =======================================================
% By Ning Jiangbo 
% 2018/05/01
% 小数延迟FIR滤波器
%% =======================================================
clc;
clear all;
close all;
%%
L = 16; % 滤波器长度
N_index = 0:L-1;
fs = 1e4; % 采样频率
Ts = 1./fs;
tao = 0.12345*Ts;
f_number = 100; % 频点的个数
% D_group_delay = D_group_delay_function( LtaoTs);% 群时延的点数
if mod(L2) ==1 && tao>=-0.5*Ts && tao<0.5*Ts
    D_group_delay = (L-1)/2;
elseif mod(L2) ==0 && tao>=0 && tao<0.5*Ts
    D_group_delay = L/2 - 1;%
elseif mod(L2) ==0 && tao>=-0.5*Ts && tao<0
    D_group_delay = L/2 + 1;%
end
f_tem = linspace(00.5f_number+1);
f_digital =f_tem(1:f_number); % 数字频率
f_d_inter = (f_digital(2)-f_digital(1));
f_PB = 0:f_d_inter:0.4;
f_SB =  f_PB(end)+f_d_inter:f_d_inter:f_digital(end);
Hf_pass = exp(-1i*2*pi*f_PB*(D_group_delay+tao/Ts));
% Hf_stop = exp(-1i*2*pi*f_SB*(D_group_delay+0/Ts));
Hf_desire = [Hf_passzeros(1f_number-length(Hf_pass))];
figure
subplot(211)
plot(f_PB20*log10(round(abs(Hf_pass)))‘ro-‘)
subplot(212)
plot(f_PBangle(Hf_pass)*180/pi‘ro-‘)
E_f = exp(-1i*2*pi*N_index‘*f_digital);
lamda_k = [ones(1length(Hf_pass))zeros(1f_number-length(Hf_pass))];
%% -------------- norm 1 L1范数
cvx_begin
variable h1(L)
minimize(lamda_k*(abs(E_f.‘*h1-Hf_desire.‘)))
cvx_end
Hf_passign1 = E_f.‘*h1;
subplot(211)
hold on;
plot(f_digital20*log10(abs(Hf_passign1)/max(abs(Hf_passign1)))‘g-‘)
subplot(212)
hold on;
plot(f_digitalangle(Hf_passign1)*180/pi‘g-‘)
%% --------------- norm 2 L2范数
cvx_begin
cvx_q = cvx_quiet(true)
variable h2(L)
minimize(lamda_k*((((E_f.‘*h2-Hf_desire.‘)‘).‘).*(E_f.‘*h2-Hf_desire.‘)))
cvx_end
Hf_passign2 = E_f.‘*h2;
subplot(211)
hold on;xlabel(‘fd‘);ylabel(‘幅度/dB‘);title(‘频率响应‘)
plot(f_digital20*log10(abs(Hf_passign2)/max(abs(Hf_passign2)))‘b-‘)
subplot(212)
hold on;
plot(f_digitalangle(Hf_passign2)*180/pi‘b-‘)
xlabel(‘fd‘);ylabel(‘相位/°‘);title(‘相位响应‘)
%% ------------------ norm infinite 无穷范数
cvx_begin
cvx_q = cvx_quiet(true)
variable h_inf(L)
minimize(max(lamda_k‘.*abs(E_f.‘*h_inf-Hf_desire.‘)))
cvx_end
Hf_passign_inf = E_f.‘*h_inf;
subplot(211)
hold on;
plot(f_digital20*log10(abs(Hf_passign_inf)/max(abs(Hf_passign_inf)))‘c-‘)
legend(‘期望值‘‘L1范数‘‘L2范数‘‘无穷范数‘)
subplot(212)
hold on;
plot(f_digitalangle(Hf_passign_inf)*180/pi‘c-‘)
%%
figure
plot(f_digitalabs(Hf_passign1-Hf_desire.‘)‘r--‘)
hold on;
plot(f_digitalabs(Hf_passign2-Hf_desire.‘)‘c‘)
plot(f_digitalabs(Hf_passign_inf-Hf_desire.‘)‘g.-‘)
xlabel(‘fd‘);ylabel(‘设计误差‘);
legend(‘L1范数‘‘L2范数‘‘无穷范数‘)
xlim([00.4])
%% ================LFM调频信号================
N = 512;
t = (0:N-1)/fs;
T = t(end);
fu = 2e3;fl = 1e3;
sig_LFM = sin(2*pi*(fl+(fu-fl)*t/(2*T)).*t);
figure
t_pie = t - tao;
sig_LFM_delay = sin(2*pi*(fl+(fu-fl)*t_pie/(2*T)).*t_pie);
subplot(311)
plot(tsig_LFM_delay‘b-‘);grid on;
xlim([0 inf]);
xlabel(‘time/s‘);ylabel(‘Amplitude‘);title(‘理想延迟波形‘)
y_out = conv(h1sig_LF

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件   17194442  2018-05-08 18:06  程序new\cvx-w32.zip

     文件   21600002  2018-02-07 16:47  程序new\cvx-w64.zip

     文件       3579  2018-05-10 10:13  程序new\Decimal_delay_filter1.m

     文件       5120  2018-05-10 11:46  程序new\Decimal_delay_filter2.m

     文件        352  2018-05-01 21:17  程序new\先读我,不让运行不了的噢.txt

     目录          0  2018-05-10 12:06  程序new

----------- ---------  ---------- -----  ----

             38803495                    6


评论

共有 条评论