加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

     ychou=[ychou,y(i*dot)];

end

fftychou=fft(ychou);

pchou=angle(fftychou);

p1chou=pchou(Ichou);

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有