취소
다음에 대한 결과 표시 
다음에 대한 검색 
다음을 의미합니까? 

입력되는 신호 필터링 하는법 질문이요

안녕하세요 지금 제가 어떠한 함수에 함수발생기로 60헤르츠 신호를 추가시켜

 

그 60헤르츠를 필터기능을 이용하여 제거를 하려고 합니다.

 

신호를 마이리오로 받아 FFT를 하면 그래프가 뜨진 않는데 샘플길이랑 ms속도 조절해주면 60으로 맞춰주면 되더라구요?

 

아무튼... 문제는 60hz 신호를 필터로 제거를 해주려고 하는데 없어지질 않습니다.

 

무엇이 잘못된건지 알 수 있을까요?

 

버터워스 그리고 제일 쉽게 사용할 수 있는 필터 라는기능을 이용해도 없어지질 않네요..

0 포인트
1/9 메시지
2,931 조회수

지금 필터를 어떻게 사용하셨는지는 올린 사진으로는 알 수가 없네요

 

일단 필터 사용법에 대해 좀더 찾아보실 필요가 있을거 같아요

 

참고용으로 사진 첨부했는데 이거랑 LabVIEW 컨트롤+H누르면 나오는 도움말을 이용해서 필터 사용법을 익혀보세요

0 포인트
2/9 메시지
2,896 조회수

음 이게 그 랩뷰에서 만들어내는 신호는 잘 필터링이 되는데

만든신호를 마이리오 아웃풋 핀으로 내보내서

인풋핀으로 다시받아서 할때 필터링이 잘 안되는것 떄문에 질문을 했습니다.

 

랩뷰내에서 만든 데이터는 다이나믹 신호인데

마이리오 인풋핀으로 받으면 DBL데이터로 받게 되잖아요?

이게 문제일까요?

 

외부 신호를 마이리오로 받고 그 신호를 랩뷰로 필터링은 안되는건가요?

 

현재 과정은 랩뷰내에서 신호만들기 -> 신호 외부로 내보내기(핀연결해서 브레드 보드에 꼽기) -> 신호에 펑션 제너레이터 기기 를 이용하여 특정 주파수 넣기(브레드보드에 선 꼽아서) ex) 30Hz  -> 마이리오 인풋핀으로 신호+노이즈 받기 -> 랩뷰내에서 필터 기능을 이용하여 특정 주파수  30Hz 제거 

 

이 과정입니다.  지금 마이리오 인풋핀으로 신호 받기에 문제가 있는거 같습니다.

파형 그래프는 뜨는데 FFT와 필터 기능이 되지않습니다. 마이리오로 들어온 신호로는

0 포인트
3/9 메시지
2,887 조회수

만들어 내는 데이터는 다이나믹 데이터이고 이걸 마이리오 내부로 보내고

받을떄는 DBL값으로 받아서 안되는거 같다는게 제 생각인데

어떻게 방법이 없는지 여쭙고 싶습니다

 

DBL데이터를 다이나믹데이터로 변환하면 필터와 파워 스펙트럼와이어 연결은 되는데 파형이 시뮬로 돌린거랑은 좀 다르게 나오는......

0 포인트
4/9 메시지
2,882 조회수

신호 시뮬레이션에서 나오는 파란 선인 사인파나, 스펙트럼 측정2에서 받으려고 하는 신호(갈색선)은 웨이브 폼으로 둘 다 X 축에 샘플 속도가 들어가 있어요

지금처럼 myRIO AI에서 나오는 DBL 신호가 100개라 하면은 막상 X축은 myRIO AI의 샘플 속도와는 관계없이 0~99로 될거에요

여기서 0~99는 샘플 속도가 포함된 X축이 아니라 그냥 개수가 100개니 0부터 99까지 X축을 임의로 넣은것이라 보면 됩니다

 

제가 처음 올린 사진에 보면 필터에 샘플 속도가 들어가고 있고 필터를 통과한 DBL을 그냥 바로 분석하는 것이 아닌 웨이브폼(갈색선)으로 만들어주고 FFT 분석에 넣었어요

그리고 웨이브폼으로 만드려면 Y값이랑 dt값이 필요 한데 dt는 샘플속도라 보면 됩니다. 그래서 필터에서 사용한 샘플 속도를 역수 취해서 dt로 넣어줬습니다.

(필터에선 Hz로 받지만, dt는 시간으로 받기에 역수)

 

일단 myRIO에서 노이즈+보려는 신호를 받은 AI를 웨이브폼으로 만들어준 다음 FFT 해볼 필요가 있습니다

myrio AI 설정에 샘플 속도 설정을 해주셨을테니 샘플속도는 그걸로 참고하면 될거에요

0 포인트
5/9 메시지
2,877 조회수

일단 제가 만드는 신호는 보통 사인파가 아니라 ECG 웨이브라

툴을 이용해서 아날로그 아웃풋으로 보냅니다

시뮬처럼 코드를 짜서 마이리오 밖으로 안보내고 그냥 그대로 실험하면

필터링이랑 FFT가 잘 됩니다. 50Hz를 줬는데 FFT도 50Hz부분 잘 나오고요

 

근데 이걸 이제 마이리오 아웃으로 보내고 받으면

x축이 0.5까지밖에 안나옵니다.

그래서인지 필터도 안되구요

 

모두 다운로드
0 포인트
6/9 메시지
2,871 조회수

시뮬.GIF는 완성된 웨이브폼(N개의 Y축 데이터 + 샘플 속도가 고려된 X축)

이상.jpg 보면 데이터 1개만 필터로 보내고 있습니다. (1개의 Y축 데이터 + 샘플 속도가 전혀 고려 안된 X축)

 

1. HW 체크

a. AO에서 ECG 파형이 잘 나오는지 확인

b. ECG파형 + 30Hz 노이즈가 합쳐졌는지 확인

c. AI에서 ECG 파형 + 30Hz 노이즈 파형이 잘 수집되는지 확인

a와 b는 다른 scope있으면 체크해 보시면 되겠네요

만약 없으면 생략하고 c를 체크해 봐야합니다

c에서 제대로 안나오면 scope를 구해서 a, b부터 잘되는지 확인을 해봐야해요

 

2. 코드 체크 (코드 체크는 최소한 HW체크에서 c까지 보이면 하시면 되요 c도 안 보인상태에선 무의미해요)

-> 위에서 시뮬 GIF는 N개의 데이터 + 샘플 속도가 고려된 X축인데 반해 이상.jpg는 전혀 그렇지 않아요

-> 1개씩 넣지 말고 데이터를 모아서 꽤나 많은 주기 데이터를 AI로 모은다음 웨이브폼으로 만든 다음에 넣어보시면 됩니다

(이 방법은 제가 처음에 올린 dt와 Y축에 데이터를 넣어 FFT 함수에 넣은 부분을 참고하시면 돼요)

 

 

0 포인트
7/9 메시지
2,867 조회수

ECG 파형은 잘 찍힙니다. 그리고 오실로스코프 장비가 있어서 측정할수 있긴한데 60Hz노이즈가 섞여있는지는 분간을 할 수 없어서 FFT를 랩뷰에서 해주고 잘 된것을 확인할 수 가 있었습니다.

 

다음과 같이 코드를 짯구요

코드 보면 2000이라는 상수 위에 함수는 데이터 큐라고 인풋에서 나오는 데이터 값 모으려고 써준것입니다. 데이터를 모아서 웨이브폼으로 만들라고 하셔서요

아무튼 위아같이 코드를 짯는데 결과는 좀 이상하게 나오내요...

진폭도 뜬금없고 60Hz에도 주파수가 안찍히구요?

코드가 잘못된걸가요?

예제를 하며 랩뷰를 배우는중이라 제가 잘못했을 수 도 있습니다, 

모두 다운로드
0 포인트
8/9 메시지
2,862 조회수

만약 오실로스코프로 AO1로 찍었는데 결과2.GIF의 시뮬파형처럼 나왔다면 일단 AO까지는 이상이 없는거겠네요

그럼

1. AI1로 받고난 현재 큐 인디케이터에 찍히는 데이터가 시뮬파형과 동일한지 확인해야합니다. (AI에서 원형 데이터를 잘 수집했는지 확인이 필요함)

2. 필터에 2000이라고 넣어준 상수는 AI1의 샘플링 속도를 의미하는데 AI1 속도를 2000으로 한게 맞나요?

그리고 제 첫번째 댓글에서 참고용.png에서 봤듯이 dt는 샘플링 속도의 역수로 넣어줬어요

샘플링 속도는 2000Hz이니 dt는 이것의 역수는 1/2000을 넣어줘야 해요 이건 제가 두번쨰 달아드린 댓글에서도 말씀드렸어요...

지금 사진1.GIF의 dt는 2000초를 넣었네요

이 의미를 2000초마다 샘플 한개를 찍었다는 것을 의미합니다. 샘플링 주파수로는 0.0005Hz가 되겠네요

0 포인트
9/9 메시지
2,833 조회수