필터 지우기
필터 지우기

I have written this function for the sine wave that takes different values of frequency(f0)and sampling frequency(fs) Can anyone help where I am doing wrong.

조회 수: 4 (최근 30일)
function y= sin_f(length,amplitude,Frequency,phaseShift)
N=length;
f0 =Frequency;
phi= phaseShift;
A=amplitude;
y=zeros(1,N+1);
for n=1:N+1
y(n)=A*sin(2* pi* f0 * (n-1)+ phi);
end
N=40; % Number of samples
A=1.5; % Amplitude
k=1; % for subplot
phi =pi/2; % for phase angle
fs = 44000
x=[0:1:N];
m = [0, 0.05, 0.1,0.4,0.45,0.5,0.55,0.6]
%m=[0 .1 .2 .8 .9 1 1.1 1.2];
r=floor(length(m)/2);
for i= m
f0=m
y= sin_f(N,A,f0,phi);
figure(1)
subplot(r+1,2,k);
stem(x,y);
xlabel('Time Index n');
ylabel('Amplititude');
title(m(k));
k=k+1;
end

답변 (1개)

Walter Roberson
Walter Roberson 2017년 10월 29일
You tried to use length as the name of a parameter and also as the function that it more commonly represents.
Your code has no comments about what sizes are expected for the parameters, and does no checking; your code just crashes for no good reason if the user passes something non-scalar.
  댓글 수: 7
Aash
Aash 2017년 10월 29일
so u mean i should change name of N= length in the function? if its so then why is it working for angular frequency?
Walter Roberson
Walter Roberson 2017년 10월 29일
N is not the problem. The problem is "length". You should avoid using variable names that are the same as MATLAB functions, because you will tend to forget that they are variables at the time you need the function.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by