用MATLAB仿真连续时间信号的抽样

用MATLAB仿真连续时间信号的抽样,第1张

clf;

t=-1:002:1;

xa=5sin(2pi40t)+18sin(4pi40t)+08sin(5pi40t);

subplot(2,1,1)

plot(t,xa);grid

xlabel('时间, msec');ylabel('幅值');

title('连续时间信号 x_{a}(t)');

axis([0 1 -12 12])

subplot(2,1,2);

T = 012;

n = 0:T:1;

xs = 5sin(2pi40n)+18sin(4pi40n)+08sin(5pi40n);

k = 0:length(n)-1;

stem(k,xs);grid;

xlabel('时间,msec');ylabel('幅值');

title('离散时间信号 x[n]');

axis([0 (length(n)-1) -10 10])

以上的回答都太复杂了,其中那个自己编MATLAB程序的,我看了看分布并不理想。建议楼主直接调用MATLAB里的lhsdesign函数进行抽样。以下是我举得一个例子:

%用lhsdesign(20,2)来生成20行2列的的矩阵,2列分别20个0~1之间的均匀样本点,你试试下面代码:

A=lhsdesign(20,2);

x1=A(:,1)100;

x2=A(:,2)110+20;

scatter(x1,x2,50,'filled')

matlab一样的程序不一样的结果是正常的,因为它是属于抽样结果很容易出现不一样。

MATLAB相同的代码,运行结果不同

matlab

在高于四毫米的采样间隔是可以运行的

低于四毫米就报错

显示维度不匹配。

好像我把抽样点个数控制在2万个之内是可以运行的。

clear all;

clf;

N = 200;     %采样数量

F = 1;       %被采样信号频率1Hz

Ts = 01;   %采样间隔

Fs = 1/Ts;   %采样频率

T = NTs;    %采样时长

n = 0:N-1;    %时域采样序列(N个采样)

NP = floor( (1/F)/(Ts) );    %1个周期采样点数

                           %为了清楚显示波形,只画1个周期                  

nTs = nTs;         %时域采样时间序列

f = sin(2pinTs);  %时域采样,

subplot(211);

stem(nTs(1:NP),f(1:NP));

title(['采样信号,Ts=' num2str(Ts)]);

%下面是为了更好地显示出待采样信号的波形

Ts1 = 0001;                  

NP1 = floor( (1/F)/(Ts1) );

t1 = [0:NP1-1]Ts1;

f1 = sin(2pit1);

hold on;

plot(t1,f1,'r-');

hold off;

%下面开始用内插法重建信号

%采样信号: x(n)=f

%采样间隔: T=Ts

%原理(内插法): y(t)=Σx(n)sinc((t-nTs)/Ts)

t1 = 0;     %开始时间

t2 = 1/F;   %结束时间(取信号的1个周期)

Dt = Ts/2;

t=t1:Dt:t2;  

fa = f sinc( Fs(ones(length(nTs),1)t - nTs'ones(1,length(t))) );

subplot(212);

plot(t,fa);

title('重建信号(内插法)');

去csdn找下,或者程序员联合开发网,csdn的博客也可以找,下载那可以找相关资料找找

>

以上就是关于用MATLAB仿真连续时间信号的抽样全部的内容,包括:用MATLAB仿真连续时间信号的抽样、400多万个数据想要用拉丁超立方采样,matlab程序怎么写、matlab一样的程序不一样的结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10109774.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存