matlab带通采样FM信号
时间: 2023-09-12 09:03:05 浏览: 54
以下是一段matlab代码,用于生成带通采样FM信号:
```
% 设置参数
fc = 100; % 载波频率
fs = 1000; % 采样频率
fm = 10; % 调制频率
kf = 10; % 频率偏移系数
t = 0:1/fs:1; % 时间向量
% 生成调制信号
m = sin(2*pi*fm*t);
% 生成带通滤波器
f1 = 90; % 带通滤波器截止频率1
f2 = 110; % 带通滤波器截止频率2
n = 100; % 滤波器阶数
h = fir1(n, [f1 f2]/(fs/2));
% 生成FM信号
phi = 2*pi*fc*t + 2*pi*kf*cumsum(m)/fs; % 相位调制
s = cos(phi);
% 进行带通滤波
y = filter(h, 1, s);
% 绘制原始信号和滤波后的信号
figure;
subplot(2,1,1);
plot(t, s);
xlabel('时间');
ylabel('振幅');
title('原始信号');
subplot(2,1,2);
plot(t, y);
xlabel('时间');
ylabel('振幅');
title('滤波后的信号');
```
这段代码生成一个带通采样FM信号,采样频率为1000Hz,载波频率为100Hz,调制频率为10Hz,频率偏移系数为10。调制信号为sin函数,带通滤波器的截止频率为90Hz和110Hz,阶数为100。最后绘制原始信号和滤波后的信号。
相关问题
带通采样FM信号的matlab代码
以下是一个带通采样FM信号的MATLAB代码示例:
```matlab
%% 定义参数
fc = 5000; % 载波频率
fm = 200; % 调制频率
B = 2000; % 带宽
Fs = 8000; % 采样率
T = 1/Fs; % 采样时间间隔
t = 0:T:1; % 时间向量
kf = B/(2*pi*fm); % 调频系数
%% 生成信号
m = cos(2*pi*fm*t); % 原始调制信号
s = cos(2*pi*fc*t + 2*pi*kf*cumsum(m)*T); % 带通采样FM信号
%% 绘图
subplot(2,1,1);
plot(t,m);
title('原始调制信号');
xlabel('时间');
ylabel('幅度');
subplot(2,1,2);
plot(t,s);
title('带通采样FM信号');
xlabel('时间');
ylabel('幅度');
```
运行代码后,将生成一个带通采样FM信号和其原始调制信号的图形。
matlab带通采样10.7MHzFM信号
以下是matlab实现10.7MHz FM信号带通采样的示例代码:
```matlab
% 定义采样频率和采样时间
fs = 50e6; % 采样频率为50MHz
Ts = 1/fs; % 采样时间间隔
% 生成10.7MHz的FM信号
fc = 10.7e6; % 载波频率为10.7MHz
fm = 100e3; % 调制信号频率为100kHz
kf = 10e3; % 调频系数为10kHz/V
t = 0:Ts:1/fm; % 采样时间序列
m = cos(2*pi*fm*t); % 产生调制信号
x = cos(2*pi*(fc+kf*m).*t); % 产生FM信号
% 带通采样
fs1 = 20e6; % 采样频率1为20MHz
fs2 = 30e6; % 采样频率2为30MHz
fs3 = 40e6; % 采样频率3为40MHz
Ts1 = 1/fs1; % 采样时间间隔1
Ts2 = 1/fs2; % 采样时间间隔2
Ts3 = 1/fs3; % 采样时间间隔3
n = 0:Ts:1/fc; % 采样时间序列
y1 = x .* cos(2*pi*fs1*n); % 采样1
y2 = x .* cos(2*pi*fs2*n); % 采样2
y3 = x .* cos(2*pi*fs3*n); % 采样3
% 绘制原始信号和三个采样信号
subplot(2,2,1);
plot(t,x);
title('原始信号');
xlabel('时间(s)');
ylabel('幅度(V)');
subplot(2,2,2);
plot(n,y1);
title('采样1信号');
xlabel('时间(s)');
ylabel('幅度(V)');
subplot(2,2,3);
plot(n,y2);
title('采样2信号');
xlabel('时间(s)');
ylabel('幅度(V)');
subplot(2,2,4);
plot(n,y3);
title('采样3信号');
xlabel('时间(s)');
ylabel('幅度(V)');
```