?? dfftgen.m
字號:
function [new_y,t_vec,alias_y,n_vec,new_sig,fa] = dfftgen
% DFFTGEN Signal generator for DFFTGUI.
%
% Author: Craig Borghesani <cborg@terasoft.com>
% Date: 11/11/95 4:00 PM
% Revised: 11/23/95 12:39 PM
% Modified AA Sep 20,96 (to use degrees instead of radians)
f = gcf;
ui = get(f,'userdata');
ele_mat = get(ui(1),'userdata');
sample_edt = ui(24);
number_edt = ui(27);
sample_freq = str2num(get(sample_edt,'string'));
[r,c] = size(ele_mat);
i = sqrt(-1);
% Number of samples
len_val =eval(['[',get(number_edt,'string'),']']);
N=len_val(1);
% DT index to plot samples
n_vec=(0:N-1)/sample_freq;
% obtain plotting range values
duration = N/sample_freq;
% CT index to plot actual signal on denser array
%t_vec=(0:200)*duration/200;
fmax=max(ele_mat(1:r,2));
M=round(20*duration*fmax);M=min(M,8000);
t_vec=(0:M)*duration/M;
new_y = zeros(size(t_vec));
alias_y = zeros(size(n_vec));
new_sig = zeros(size(t_vec));
% if no signal defined, get out.
if ~length(ele_mat),
fa = [];
return;
end
% Compute aliased frequencies
f0 = ele_mat(:,2);
fa = rem(f0,sample_freq);
q = find(fa > 0.5*sample_freq);
if ~isempty(q),
fa(q) = fa(q)-sample_freq;
end
for k = 1:r,
val1 = ele_mat(k,1);
val2 = ele_mat(k,2);
val3 = ele_mat(k,3);
val4 = fa(k);
%%%%%%%% In ALIASGUI & DFFTGUI, phase is now stored in degrees %%%%%%%%
val3 = pi*val3/180;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y = val1 * cos(2*pi*val2*t_vec + val3);
ay = val1 * cos(2*pi*val2*n_vec + val3);
ny = val1 * cos(2*pi*val4*t_vec + val3);
new_y = new_y + y;
alias_y = alias_y + ay;
new_sig = new_sig + ny;
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -