MATLAB模拟不同频率的方波信号,并混合不同频率信号后求相位和频谱图
(2015-10-16 08:26:34)
标签:
matlab信号方波混频相位 |
满采样
模拟f1=12.5M,f2=10.9375M,f3=12.3046785M三个方波信号,并通过“与”操作混合三信号。
f1=100/8; .5M
f2=700/64; .9375M
f3=6300/512; .3046785M
ff=787.5; %三个频率的公倍数作采样频率
A=ff/f1; %若按照787.5M采样f1信号,每周期可采A=63个点
B=ff/f2;
%若按照787.5M采样f2信号,每周期可采B=72个点
C=ff/f3;
%若按照787.5M采样f3信号,每周期可采C=64个点
N=16; %为方便后期抽取每周期16点信号,将每周期点数扩大为16的倍数
N1=A*N;%每周期1008点
N2=B*N;%每周期1152点
N3=C*N;%每周期1024点
Fs=ff*N; %采样频率也放大16倍
T=10;%假设混合后的信号共10个周期
fff=4032*N; %混合信号周期点数,4032是ABC的公倍数,为了保证进行混合的三个信号都是整周期
length=fff*T;
n=0:length-1;
t=n/Fs;
f=(0:length-1)*Fs/length;
I1=find(f==f1);
I2=find(f==f2);
I3=find(f==f3);
y1=square(2*pi*f1*t,50);
for i=1:length
if(y1(i)==-1)
y1(i)=0;
end
end
y2=square(2*pi*f2*t,50);
for i=1:length
if(y2(i)==-1)
y2(i)=0;
end
end
y3=square(2*pi*f3*t,50);
for i=1:length
if(y3(i)==-1)
y3(i)=0;
end
end
y=y1&y2&y3;
ffty=fft(y);
p=angle(fft);
p1=p(I1);
p2=p(I2);
p3=p(I3);
figure(1);plot(t,y); %混合信号图
magy=abs(fft(y)*2)*2/length;
figure(2);plot(f(1:length/2),magy(1:length/2));
%频谱图
抽点求指定频率f1信号的相位:
dot=21; !*48=1008,每隔21点抽一个点,每周期48个点
Fschou=Fs/dot;%采样频率缩小,采样时间间隔变长
lengthchou=length/dot;
nchou=0:lengthchou-1;
tchou=nchou/Fschou;
fchou=(0:lengthchou-1)*Fschou/lengthchou;
Ichou=find(fchou==f1);
ychou=[];
for i=1:lengthchou
end
fftychou=fft(ychou);
pchou=angle(fftychou);
p1chou=pchou(Ichou);
前一篇:MATLAB方波模拟和频谱图
后一篇:傅里叶变换—特别好懂的文章(转)

加载中…