平方幅值解调MATLAB代码
时间: 2024-05-02 13:14:52 浏览: 14
平方幅值解调是一种常用的调制解调技术,用于从调制信号中提取出原始信号。下面是一个简单的平方幅值解调的MATLAB代码示例:
```matlab
% 原始信号
t = 0:0.01:1; % 时间范围
f = 2; % 原始信号频率
x = sin(2*pi*f*t); % 原始信号
% 平方幅值解调
y = x.^2; % 平方幅值解调
% 绘制图形
subplot(2,1,1);
plot(t,x);
title('原始信号');
xlabel('时间');
ylabel('幅值');
subplot(2,1,2);
plot(t,y);
title('解调信号');
xlabel('时间');
ylabel('幅值');
```
这段代码首先生成了一个正弦波作为原始信号,然后对原始信号进行平方幅值解调,即将原始信号的每个样本值进行平方操作。最后,使用subplot函数将原始信号和解调信号绘制在同一张图上。
相关问题
调制解调matlab代码
以下是一个简单的FM调制解调的MATLAB代码示例:
```matlab
% FM调制解调MATLAB代码示例
% 调制信号
fc = 100; % 载波频率
fm = 10; % 调制信号频率
beta = 5; % 调制指数
t = 0:0.0001:0.1; % 时间范围
m = cos(2*pi*fm*t); % 调制信号
c = cos(2*pi*fc*t + beta*sin(2*pi*fm*t)); % 调制后的信号
subplot(2,1,1);
plot(t,m);
title('调制信号');
xlabel('时间');
ylabel('幅度');
subplot(2,1,2);
plot(t,c);
title('调制后的信号');
xlabel('时间');
ylabel('幅度');
% 解调信号
[b,a] = butter(5,2*fm/fc); % 低通滤波器
demod = diff(c).*cos(2*pi*fc*t(1:end-1)+pi/2); % 解调信号
demod_f = filtfilt(b,a,demod); % 滤波后的解调信号
figure;
plot(t(1:end-1),demod_f);
title('解调信号');
xlabel('时间');
ylabel('幅度');
```
FSK解调matlab代码
以下是一个简单的FSK解调Matlab代码示例:
```matlab
% 生成FSK信号
fs = 10000; % 采样率
f1 = 1000; % 第一个频率
f2 = 2000; % 第二个频率
t = 0:1/fs:1; % 时间向量
msg = [0 1 0 1 1 0 1 0]; % 待发送的二进制消息
modulated = fskmod(msg,f1,f2,fs); % 生成FSK信号
% 加入噪声
SNR = 10; % 信噪比
noisy = awgn(modulated, SNR, 'measured'); % 加入高斯白噪声
% 解调FSK信号
freqsep = f2-f1; % 频率间隔
nsamp = 16; % 采样率
[b,a] = butter(6, freqsep/(2*fs), 'low'); % 低通滤波器
filtered = filter(b, a, noisy); % 滤波
t = 0:nsamp:length(filtered)-1; % 采样时间
samples = filtered(t+1); % 采样
demodulated = fskdemod(samples,f1,freqsep,nsamp,fs); % 解调
% 显示结果
subplot(3,1,1);
plot(t,modulated);
title('Modulated Signal');
subplot(3,1,2);
plot(t,filtered);
title('Filtered Signal');
subplot(3,1,3);
plot(t,demodulated);
title('Demodulated Signal');
```
这个代码生成了一个包含二进制消息的FSK信号,并加入了高斯白噪声。然后,它使用一个低通滤波器和采样器解调信号,并显示了原始FSK信号,滤波信号和解调信号。