怎么用matlab设计混频器

怎么用matlab设计混频器,第1张

clear all

f1=80f2=100%频率

N=5%周期个数

t1=N*1/f1t2=N*1/f2

fs=2000%采样频率,磨毁慎按照采样定理200hz即可瞎敬,但为了光滑好看,因为信号时间较短,还是要多一些

t=0:1/fs:(t1+t2)%信号时间数组

y=sin(f1*2*pi*t).*(t>=0&t<=t1)+sin(f2*2*pi*(t-t1)).*(t>=t1&t<=(t1+t2))

%信号起始点都从0开始的正弦波,相位为零,最后相加。余迹

plot(t,y)

xlabel('时间/S'),ylabel('信号y')

echo off

close all

clc

t0=0.2

ts=0.001

fs=1/ts

%*********************************************************************

fc=300

%*********************************************************************

t=[-t0/2:ts:t0/2]

df=0.25

%*********************************************************************

m=sinc(100*t)

%*********************************************************************

c=cos(2*pi*fc.*t)

u=m.*c

y=u.*c

[M,m,df1]=fftseq(m,ts,df) %对调制信号m(t)求傅里叶变换

M=M/fs

[U,u,df1]=fftseq(u,ts,df) %对调制后的信号u求傅里叶变换

U=U/fs%缩放

[Y,y,df1]=fftseq(y,ts,df) %对混频后的信号y求傅里叶岩前纳变

Y=Y/fs%缩放

%*********************************************************************

%以悔橘下这段程序是专门用来构建在频谱上的滤波器的方法

f_cutoff=150

n_cutoff=floor(150/df1)

f=[0:df1:df1*(length(y)-1)]-fs/2

H=zeros(size(f))

H(1:n_cutoff)=2*ones(1,n_cutoff)

H(length(f)-n_cutoff+1:length(f))=2*ones(1,n_cutoff)

%********************************************************************

DEM=H.*Y

dem=real(ifft(DEM))*fs %ifft为傅里叶反变换函数,滤波器的输出-解调信号

%乘以fs是为了恢复原信号,因为前面使用了缩放

disp('按任意键可看到混频的效果')

pause

figure(1)

subplot(3,1,1)

plot(f,fftshift(abs(M)))%fftshift:将FFT中的DC分量移到频谱中心

title('原调制信号的频谱图')

xlabel('频率f')

subplot(3,1,2)

plot(f,fftshift(abs(U)))

title('已调信号的频谱图')

xlabel('频率f')

subplot(3,1,3)

plot(f,fftshift(abs(Y)))

title('混频信号的频谱图')

xlabel('频率f')

disp('按任意键可看到混频器输出的波形的频谱效果')

pause

figure(2)

subplot(3,1,1)

plot(f,fftshift(abs(Y)))

title('混频信号的频谱图')

xlabel('频率f')

subplot(3,1,2)

plot(f,fftshift(abs(H)))

title('低通滤波器的频谱图')

xlabel('频率f')

subplot(3,1,3)

plot(f,fftshift(abs(DEM)))

title('混频信粗没号通过滤波器后的信号的频谱图')

xlabel('频率f')

disp('按任意键可看到原调制信号和接受信号频谱的比较')

pause

figure(3)

subplot(2,1,1)

plot(f,fftshift(abs(M)))

title('原调制信号的频谱图')

xlabel('频率f')

subplot(2,1,2)

plot(f,fftshift(abs(DEM)))

title('混频信号通过滤波器后的信号的频谱图')

xlabel('频率f')

disp('按任意键可看到原调制信号和解调器输出信号对比')

pause

figure(4)

subplot(2,1,1)

plot(t,m(1:length(t)))

title('原调制信号的时域图')

xlabel('时间t')

subplot(2,1,2)

plot(t,dem(1:length(t)))

title('解调后信号的时域图')

xlabel('时间t')

子程序

%求傅里叶变换的子函数

function [M,m,df]=fftseq(m,ts,df)

fs=1/ts

if nargin==2

n1=0

else

n1=fs/df

end

n2=length(m)

n=2^(max(nextpow2(n1),nextpow2(n2)))

M=fft(m,n)

m=[m,zeros(1,n-n2)]

df=fs/n


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12497233.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存