📄 fangzhen1.m
字号:
%产生信号并采样;
A=[10,20,30,40];
B=[4,6,7,10];
C=[0,pi/2,pi/2,pi/4];
D=[pi/6,pi/4,pi/3,pi/2];
f=[35,280,1120,4480];
fs=[3500,28000,112000,448000];
M=1000;
for i=1:4;
k=[1:M];
A1(k)=A(1)*sin(2*pi*f(1)*k/fs(i)+C(1));
A2(k)=A(2)*sin(2*pi*f(2)*k/fs(i)+C(2));
A3(k)=A(3)*sin(2*pi*f(3)*k/fs(i)+C(3));
A4(k)=A(4)*sin(2*pi*f(4)*k/fs(i)+C(4));
B1(k)=B(1)*sin(2*pi*f(1)*k/fs(i)+D(1));
B2(k)=B(2)*sin(2*pi*f(2)*k/fs(i)+D(2));
B3(k)=B(3)*sin(2*pi*f(3)*k/fs(i)+D(3));
B4(k)=B(4)*sin(2*pi*f(4)*k/fs(i)+D(4));
if i==1
A1x=A1(k)+A2(k)+A3(k)+A4(k);
B1x=B1(k)+B2(k)+B3(k)+B4(k);
end
if i==2
A2x=A1(k)+A2(k)+A3(k)+A4(k);
B2x=B1(k)+B2(k)+B3(k)+B4(k);
end
if i==3
A3x=A1(k)+A2(k)+A3(k)+A4(k);
B3x=B1(k)+B2(k)+B3(k)+B4(k);
end
if i==4
A4x=A1(k)+A2(k)+A3(k)+A4(k);
B4x=B1(k)+B2(k)+B3(k)+B4(k);
end
end
figure;
plot(A1x);
resample(A1x,1,10);
title('混合信号A1x');
%滤波器设计;
wp=[25 45]*2/3500;N=200;
b=fir1(N,wp);
save('b.txt','b','-ascii');
figure;
stem(b);
w=0:1/200:1;
hd=freqz(b,1,w);
figure;
plot(w,20*log(abs(hd)));
title('滤波器');
%对A通道进行滤波;
%滤出频率为35hz的波形;
y1=juanji(b,A1x);
figure;
stem(k,y1);
title('A通道 f=35hz');
%滤出频率为280hz的信号
y2=juanji(b,A2x);
figure;
stem(k,y2);
title('A通道 f=280hz');
%滤出1120hz的信号;
y3=juanji(b,A3x);
figure;
stem(k,y3);
title('A通道 f=1120hz');
%滤出4480hz的信号;
y4=juanji(b,A4x);
figure;
stem(k,y4);
title('A通道 f=4480hz');
%对B通道进行滤波
y5=juanji(b,B1x);
figure;
stem(k,y5);
title('B通道 f=35hz');
%滤出频率为280hz的信号
y6=juanji(b,B2x);
figure;
stem(k,y6);
title('B通道 f=280hz');
%滤出1120hz的信号;
y7=juanji(b,B3x);
figure;
stem(k,y7);
title('B通道 f=1120hz');
%滤出4480hz的信号;
y8=juanji(b,B4x);
figure;
stem(k,y8);
title('B通道 f=4480hz');
%求自相关
[c,lags]=xcorr(y1,1000,'unbiased');
figure;
stem(lags/350,c);
%分别求出各频率的幅度
FA1=fudu(y1,y1)
FA2=fudu(y2,y2)
FA3=fudu(y3,y3)
FA4=fudu(y4,y4)
FB1=fudu(y5,y5)
FB2=fudu(y6,y6)
FB3=fudu(y7,y7)
FB4=fudu(y8,y8)
%进行相位测量
y55=imag( yixiang(y5));
y66=imag( yixiang(y6));
y77=imag( yixiang(y7));
y88=imag( yixiang(y8));
AB1=AB(y1,y5);
AB2=AB(y2,y6);
AB3=AB(y3,y7);
AB4=AB(y4,y8);
AB5=AB(y1,y55);
AB6=AB(y2,y66);
AB7=AB(y3,y77);
AB8=AB(y4,y88);
P1=atan(AB5/AB1)
P2=atan(AB6/AB2)
P3=atan(AB7/AB3)
P4=atan(AB8/AB4)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -