首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB - FM调制

MATLAB - FM调制
EN

Stack Overflow用户
提问于 2013-09-30 23:13:57
回答 1查看 9.6K关注 0票数 1

我正在尝试使用Matlab对正弦信号进行频率调制。为此,我编写了以下代码:

代码语言:javascript
复制
fc = 5000; %Carrier Frequency
fs = 1000; %Signal Frequency
t = 0:0.00001:0.002;
x = sin(2*pi*fs*t);
dev = 50;
subplot(2,1,1);
plot(t,x);
y = fmmod(x,fc,fs,dev);
subplot(2,1,2);
plot(t,y);

它可以显示第一个plot命令,但不能显示第二个命令。它抛出一个错误:`fmmod' undefined near line 10 column 5。上面的代码有什么问题?

EN

回答 1

Stack Overflow用户

发布于 2013-10-01 01:19:23

以下功能将生成FM调制信号-它不如fmmod好(灵活等),但如果您没有通信系统工具箱,这可能是一个很好的替代方案。

代码语言:javascript
复制
function [s t] = makeFM( x, Fc, Fs, strength )
% for a signal x that modulates a carrier at frequency Fc
% produce the FM modulated signal
% works for 1 D input only
% no error checking

x = x(:);

% sampling points in time:
t = ( 0 : numel( x ) - 1 )' / Fs;

% integrate input signal
integratedX = cumsum( x ) / Fs;
s = cos( 2 * pi * ( Fc * t  + strength * integratedX ));   

将其放入您的路径中,并使用与fmmod函数类似的参数调用它(但没有可选参数):

代码语言:javascript
复制
fc = 5000; %Carrier Frequency
fs = 1000; %Signal Frequency
t = 0:0.00001:0.002;
x = sin( 2*pi*fs*t );
dev = 50;
subplot(2,1,1);
plot(t,x);
y = makeFM(x, fc, 2.5*fc, dev); % note sampling frequency must be > carrier frequency!
subplot(2,1,2);
plot(t,y);

让我知道这是如何为你工作的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19097771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档