1樓:
不知道你的t是不是取樣週期,如果是,參考下面程式t=0.1;
t=0:t:4*pi;%取樣序列
n=length(t);
x=cos(2*pi*t);
f=(0:n-1)/(n*t);
plot(f,abs(fft(x))) %頻譜影象xlim([0,(n-1)/(n*t)/2])figure
t=0.5;
t=0:t:8*pi;
n=length(t);
x=cos(2*pi*t);
f=(0:n-1)/(n*t);
plot(f,abs(fft(x)))
兩個所得週期均為1s,符合取樣定理
2樓:匿名使用者
t1=0.1;
t1=0:t1:200;
xk1=cos(2.*pi.*t1);
fx1=fft(xk1,512);
w1=1/t1*(0:256)/512;
subplot(211)
plot(w1(1:129),fx1(1:129))t2=0.5;
t2=0:t2:200;
xk2=cos(2.*pi.*t2);
fx2=fft(xk2,256);
w2=2/t2*(0:128)/256;
subplot(212)
plot(w2(1:129),fx2(1:129))
3樓:潭厚赫飛語
你是要什麼啊?matlab**還是實驗結果啊。。
根據乃奎斯特抽樣定理,一眼就能看出結果了。
第一個肯定不會失真,第二個由於抽樣頻率太低,沒到最高截至頻率的兩倍,所以有混疊。
用matlab**連續時間訊號的抽樣
4樓:匿名使用者
clf;
t=-1:0.02:1;
xa=5*sin(2*pi*40*t)+1.8*sin(4*pi*40*t)+0.8*sin(5*pi*40*t);
subplot(2,1,1)
plot(t,xa);grid
xlabel('時間, msec');ylabel('幅值');
title('連續時間訊號 x_(t)');
axis([0 1 -1.2 1.2])
subplot(2,1,2);
t = 0.12;
n = 0:t:1;
xs = 5*sin(2*pi*40*n)+1.8*sin(4*pi*40*n)+0.8*sin(5*pi*40*n);
k = 0:length(n)-1;
stem(k,xs);grid;
xlabel('時間,msec');ylabel('幅值');
title('離散時間訊號 x[n]');
axis([0 (length(n)-1) -10 10])
5樓:匿名使用者
把原來訊號表示式裡面的t用n*ts代替就ok了。ts是抽樣週期。n是從0開始到n的整數,n是你的總取樣點
加急~matlab高手!!正弦訊號抽樣的實驗研究 拜託了!!! 20
matlab中如何對連續函式進行取樣,然後把取樣值儲存到一個陣列中?
6樓:
取t的取樣點
t = 1:0.001:10;
y = sin(2*pi*50*t);
就儲存到y裡面了
上面那句
t = a:delta:b
用封號相隔表示a到b之間以delta為間隔取值這麼高分。。。
7樓:楊好巨蟹座
格式一:b = cumsum(a)
這種用法返回陣列不同維數的累加和。
如果a是一個向量, cumsum(a) 返回一個向量,該向量中第m行的元素是a中第1行到第m行的所有元素累加和;
如果a是一個矩陣, cumsum(a) 返回一個和a同行同列的矩陣,矩陣中第m行第n列元素是a中第1行到第m行的所有第n列元素的累加和;
如果a是一個多維陣列, cumsum(a)只對a中第一個非奇異維進行計算。
格式二:b = cumsum(a,dim)
這種呼叫格式返回a中由標量dim所指定的維數的累加和。例如:cumsum(a,1)返回的是沿著第一維(各列)的累加和,cumsum(a,2)返回的是沿著第二維(各行)的累加和。
具體用法參考程式示例或matlab的幫助文件
matlab 實現連續訊號取樣後的反摺積。
8樓:匿名使用者
之前回答的那個問題失效了...
[hh,e] = deconv(y,x); % y要用20001點那個序列,得到的hh是反摺積的結果,e是誤差
matlab 怎麼對訊號進行取樣
9樓:
1、開啟matlab,新建指令碼。
2、在編輯器裡輸入**。
3、tp是觀察時間,我們設定為64微妙,即64/1000;接著輸入的**是產生m長取樣序列x(n)。
4、把實驗內容中給定的值設定好;再把給定的模擬訊號式子輸入進去。
5、subplot(3,2,1)的意思是:三行兩列,在第一個位置作圖。
6、**輸入完畢後,點選執行。
7、得到結果,對訊號進行取樣。
10樓:雲傾城
任意訊號的取樣後恢復是有條件的,必須是取樣頻率大於兩倍的訊號截至頻率才行。
//檔名 main.m
clear;
clc;
f0=10000; %用來模擬 模擬訊號的 數字訊號的取樣頻率 fs<
//檔名 signal_generate.m
function s=signal_generate(f,f0,n)
f0=10000;
num=length(f);
s=zeros(1,n);
for i=1:num
s=s+sin(f(i)*2*pi*(1:n)/f0);
end//檔名 low_filter.m
function b=low_filter(wm,level);
nm=ceil(wm/2*level);
h=zeros(1,level);
h(1:nm)=ones(1,nm);
h(nm+1)=0.5;
h(level-nm+1)=-0.5;
h(level-nm+2:level)=-ones(1,nm-1);
theta=-(level-1)/level*pi*(0:level-1); %phase
hg=h.*exp(j*theta);
b=real(ifft(hg));
b=b/(sum(b.^2));
新建這三個檔案後,拷貝在統一個目錄裡,執行main.m就可以了, 每一個過程都有相應的圖形顯示。
matlab如何求訊號的頻率特性
fft處理之後取imag就是相頻特性,abs就是幅頻特性 參考如下 fs 10000 t 0 1 fs 0.1 x sin 2 pi 50 t 0.5 cos 2 pi 200 t 0.5 sin 2 pi 270 t 幅頻特性圖 plot linspace 0,pi,1024 abs fft x,...
matlab怎麼將excel中連續好多年資料按年份提取並求這一年中最大值以及最大值對應的日期,謝謝
閒庭信步 如果各年的資料數目相等,可以以每一年的資料為列構造矩陣,再將矩陣按列提取最大值。如 下面的矩陣a代表連續5年的資料,每年20個資料。a fix 50 rand 20,5 a 9 36 6 10 1034 15 0 18 3215 41 44 39 1627 28 9 34 487 18 1...
訊號的傅立葉變換(用matlab畫頻譜函式
我行我素 t 1 0.01 1 f exp 2.abs t ff fft f plot abs ff xlabel 頻率 hz ylabel 幅度 如何用matlab程式設計求函式的傅立葉變換頻譜函式 幻想餘 fs 128 取樣頻率 t 1 fs 取樣時間 l 256 訊號長度 t 0 l 1 t ...