matlab对10.7MHz的FM信号进行带通采样和正交解调
时间: 2023-10-04 16:14:37 浏览: 228
具体步骤如下:
1. 读入10.7MHz的FM信号数据。
2. 设计一个带通滤波器,将信号的带宽限制在需要的范围内。
3. 对信号进行带通采样,即按照一定采样率采集带通滤波后的信号。
4. 将采样后的信号进行正交解调,即将信号分解成I路和Q路两个正交信号。可以使用Hilbert变换或者数字混频器实现。
5. 对解调后的两个信号进行滤波,去除高频成分。
6. 最终得到的两个信号即为解调后的信号,可以进行进一步的处理或者分析。
具体实现代码如下所示:
% 读入信号
fs = 50e6; % 采样率
t = 0:1/fs:1e-3; % 时间轴
fm = 10e6; % 调频频率
fc = 100.7e6; % 载波频率
Ac = 1; % 载波幅度
Am = 0.5; % 调制幅度
m = Am*cos(2*pi*fm*t); % 调制信号
s = Ac*cos(2*pi*fc*t + 2*pi*fm*cumsum(ones(size(t)))); % 调频信号
x = s.*m; % FM信号
% 带通滤波器设计
f1 = 10.6e6; % 信号带宽下限
f2 = 10.8e6; % 信号带宽上限
fcut = (f1+f2)/2; % 截止频率
bw = f2-f1; % 带宽
N = 101; % 滤波器阶数
h = fir1(N,2*fcut/fs); % FIR滤波器系数
freqz(h,1,1024,fs); % 绘制滤波器的频率响应
% 带通采样
fsamp = 20e6; % 采样率
y = filter(h,1,x); % 带通滤波
ys = y(1:round(fs/fsamp):end); % 采样
% 正交解调
phi = 2*pi*fc*t; % 载波相位
I = ys.*cos(phi); % I路信号
Q = -ys.*sin(phi); % Q路信号
% 低通滤波
Nlp = 101; % 低通滤波器阶数
fclp = 1e6; % 低通滤波器截止频率
hlp = fir1(Nlp,2*fclp/fsamp); % FIR滤波器系数
If = filter(hlp,1,I); % I路信号滤波
Qf = filter(hlp,1,Q); % Q路信号滤波
% 绘制I路和Q路信号
figure;
subplot(2,1,1);
plot(If);
xlabel('Sample number');
ylabel('Amplitude');
title('I channel');
subplot(2,1,2);
plot(Qf);
xlabel('Sample number');
ylabel('Amplitude');
title('Q channel');
阅读全文