资源简介
IQ调制,FM解调,MATLAB导出coe文件
。
代码片段和文件信息
echo off
close all
clear all
clc
%% FM调制
ps = 625000; % 数据率625KHz
Fs = 80*10^6; % 80M采样率
dt = 1/Fs; % 采样间隔
a = 1000;
t = 0:dt:(a*Fs/ps-1)/Fs; % 产生时间序列
N = length(t)-1;
am = 5; % 设定调制信号幅度
fm = 15*10^2; % 调制信号频率
fc = 5*10^6; % 载波频率5M
mt = am*sin(2*pi*fm*t); % 生成调制信号
ct = cos(2*pi*fc*t); % 生成载波
kf = 10000; % 调频系数 频偏75kHz
integral_mt(1)=0;
for i=1:N %积分
integral_mt(i+1)=integral_mt(i)+mt(i)*dt;
end
figure(100);plot(tintegral_mt); title(‘integral_mt‘);
sfm= am*cos(2*pi*fc*t+2*pi*kf*integral_mt); %已调信号
%%%%%%%%%%%%画图%%%%%%%%%%%%
figure(1);
subplot(311);
plot(tmt); title(‘调制信号时域‘);
axis([0 10^(-3) -5 5]);
subplot(312);plot(tct); title(‘载波信号时域‘);
axis([0 10^(-5) -1 2]);
subplot(313);plot(tsfm);title(‘已调信号时域‘);
axis([0 10^(-5) -5 5]);
%%%%%%%%%%%%画图%%%%%%%%%%%%
figure(2);
subplot(311);
plot((N/2:N/2)*Fs/N20*log10(abs(fftshift(fft(mt)))));
title(‘调制信号频域‘);
subplot(312);
plot((N/2:N/2)*Fs/N20*log10(abs(fftshift(fft(ct)))));
title(‘载波信号频谱‘);
subplot(313);
plot((N/2:N/2)*Fs/N20*log10(abs(fftshift(fft(sfm)))));
title(‘已调信号频域‘);
%%%%%%%%%%%%%%%%%%生成IQ信号%%%%%%%%%%%%%%%%%%%%%
st=imag(hilbert(ct)); %希尔伯特变化
ct=real(hilbert(ct)); %cos(wc*t)
for i=1:length(sfm)
Ih(i)=sfm(i)*ct(i);
Qh(i)=sfm(i)*st(i);
end
%%%%%%%%%%%%%%%%%%%%%滤波降频%%%%%%%%%%%%%%%%%%%
Flp=fc;
b=fir1(200Flp/Fs‘low‘); %设计滤波器
% figure(4);
% stem(b); %滤波器单位脉冲响应
Qm=filter(b1Qh);
Im=filter(b1Ih);
% figure(6)
% subplot(211);
plot((N/2:N/2)*Fs/Nabs(fftshift(fft(Qm))));
title(‘Q信号波形频域‘);
% subplot(212);
plot((N/2:N/2)*Fs/Nabs(fftshift(fft(Im))));
title(‘I信号波形频域‘);
% figure(5)
% subplot(211);
plot((N/2:N/2)*Fs/Nabs(ff
评论
共有 条评论