다양한 진폭, 지속 시간 및 빈도의 13 개의 파형을 생성하는 MATLAB 프로그램을 작성하고 있습니다. 각 파형은 5 번 반복됩니다. 즉 총 65 회의 '시행'이 있습니다.n-by-m 행렬의 요소로부터 n 개의 사인파를 생성하려면 어떻게해야합니까?
각 시험의 총 길이 = 1.5ms. 샘플링 주파수 = 4 kHz. 웨이브를 0.5ms에서 시작하겠습니다. 웨이브가 시작되기 전에 오프셋을 따라 진폭을 0으로하고 싶습니다 (즉, 웨이브 이전 및 이후의 '플랫 라인').
65 개의 사인파의 빈도 ('hz'), 진폭 (a ') 및 지속 시간 (ms)을 나타내는 65x3 매트릭스를 만들었습니다. 각 행은 단일 웨이브를 나타냅니다.
진폭 'a', 주파수 'hz'및 지속 시간 'ms'의 65 개의 사인파를 생성하려면이 65x3 매트릭스에 포함 된 정보를 사용하고 싶습니다. 구체적으로 : 각 웨이브는 행렬의 n 번째 행에 지정된 매개 변수 (hz, a, ms)를 사용하여 만들어야합니다. 예 : 1 행 = 100, 1, 50이면 ... 100Hz의 사인파 (진폭 = 1)를 50ms 지속되도록 생성하고 싶습니다.
나는이 문제를 해결하기 위해 for 루프를 만들려고했다. 그러나 루프는 여러 가지 오류를 반환하며 해결 방법을 모르겠습니다. 오류가 반환되지 않는 지점에 코드를 적용했습니다. 그러나, 나의 최근의 시도는 사실상 각 파동의 지속 시간이 벡터 'ms'에 명시된 것과 같아야한다는 동일한 지속 시간의 65 파를 생성하는 것으로 보인다.
초심자이지만 아직 실패한 시도입니다. ('trial'은 위에 설명 된 65x3 매트릭스를 나타내며 mA = 진폭).
hz=trials(:,1); mA=trials(:,2); ms=trials(:,3);
trials_waves=zeros(65,500); % the max duration (= 500ms); unsure of this part?
for n = 1:size(order,1)
trials_waves = mA*sin(2*pi*hz*0:ms);
end
제공되는 정보가 충분하지 않은 경우 사과드립니다. 이 웹 사이트에서 질문을 한 것은 이번이 처음입니다. 필요한 경우 더 많은 정보를 제공 할 수 있습니다.
도움 주셔서 감사합니다. 당신은 좋은 시작을 가지고 같은
최저
, H
루프에서 'trials_waves'을 덮어 쓰고 있습니다. – excaza