📄 cic_maichong_r3_1.m
字号:
%function cic
%利用CIC滤波器实现中频脉冲信号的包络检波
clear all;
close all;
%采样频率为168MHz,为6倍的输入信号采样频率
Fs=168e6;
%输入信号为28MHz
F0=28e6;
n=0:1023;
x=sin(2*pi*F0/Fs*n);
figure;
plot(n*1e6/Fs,x);
grid on;
xlabel('时间 单位:(微秒)');
ylabel('幅度');
title('生成信号的时域图');
%对该信号进行频域分析
S=fft(x,1024);
w=(0:511)/512*(Fs/2);
figure;
subplot(211);
plot(w/1e6,abs(S(1:512)'));
grid on;
xlabel('频率值 单位:(MHz)');
ylabel('幅度');
title('生成信号的频谱分析图');
subplot(212);
plot(w/1e6,abs(S(1:512)'));
grid on;
xlabel('频率值 单位:(MHz)');
ylabel('幅度');
axis([F0/1e6-2,F0/1e6+2,0,600]);
%对28MHz信号进行脉冲调制,占空比30%
x1=[zeros(1,140),ones(1,140),zeros(1,280),ones(1,140),zeros(1,280),ones(1,44)];
y=x1.*x;
figure;
plot(n*1e6/Fs,y);
grid on;
xlabel('时间 单位:(微秒)');
ylabel('幅度');
title('脉冲调制信号的时域图');
%y1=abs(y);
%figure;
%plot(n*1e6/Fs,y1);
%grid on;
%xlabel('时间 单位:(微秒)');
%ylabel('幅度');
%title('取绝对值后调制信号的时域图');
%axis([0,7,-0.2,1]);
%设置CIC滤波器的长度(阶数)
R = 3;
%生成CIC滤波器
Hm = mfilt.cicdecim(R);
y_fi = filter(Hm,y);
y0=double(y_fi);
y_out1=abs(y0);
y_out2=-abs(y0);
figure;
t=0:341;
plot(3*t*1e6/Fs,y_out1,'b',3*t*1e6/Fs,y_out2,'b');
%grid on;
xlabel('时间 单位:(微秒)');
ylabel('幅度');
title('信号包络检波后的时域图');
axis([0,7,-5,5]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -