質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

0回答

2023閲覧

サンプリング周波数を調整する方法

N.R

総合スコア2

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2020/07/22 07:28

こんにちは。
bitalinoをpythonから動かしてリアルタイム処理することを目標にいろいろやっているのですが、
出力されたcsvファイルを見ていると、サンプリング周波数が1000になっているのにも関わらずデータ数が1000個しか出力されてきません。
改善策を教えていただきたいです。
また、このプログラムでとれた心拍からピークを取って出力するというところまでをリアルタイム処理でしていきたいと考えています。
乱文になりましたが、ご教授お願いいたします。

python

1 2import matplotlib.pyplot as plt 3 4import time 5 6from bitalino import BITalino 7 8# The macAddress variable on Windows can be "XX:XX:XX:XX:XX:XX" or "COMX" 9# while on Mac OS can be "/dev/tty.BITalino-XX-XX-DevB" for devices ending with the last 4 digits of the MAC address or "/dev/tty.BITalino-DevB" for the remaining 10macAddress = "98:D3:A1:FD:5B:E8" 11 12#This example will collect data for 5 sec. 13running_time = 10 14 15batteryThreshold = 30 16acqChannels = [0, 1, 2, 3, 4, 5] 17samplingRate = 1000 18nSamples = 10 19digitalOutput = [1,1] 20 21# Connect to BITalino 22device = BITalino(macAddress) 23 24# Set battery threshold 25device.battery(batteryThreshold) 26 27 28# Read BITalino version 29print(device.version()) 30 31# Start Acquisition 32device.start(samplingRate, acqChannels) 33 34start = time.time() 35end = time.time() 36f = open('hogehoge2.csv','w',) 37 38while (end - start) < running_time: 39 # Read samples 40 data = device.read(nSamples) 41 s = data[:, 7] 42 43 for i in range(0,9): 44 print(s[i]) 45 46 f.write(str(s[i])) 47 f.write('\n') 48 #f.close() 49 end = time.time() 50 plt.plot(data[:, 7]) 51f.close() 52 53# Turn BITalino led on 54device.trigger(digitalOutput) 55 56# Stop acquisition 57device.stop() 58 59# Close connection 60device.close() 61

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/07/22 09:09

問題は何でそれをどうしたいんでしょうか 問題が見えません
N.R

2020/07/22 09:37

筋電を計測したいのでサンプリング周波数を1,000に設定したいのです。 また、ECGまで計測したいからです。
y_waiwai

2020/07/22 09:48

で、それがどうなってるんですか? 問題がなにかわかりません
N.R

2020/07/22 09:52

わかりにくくてすいません。 csvファイルで筋電の値が出力されてくるのですが、サンプリング周波数を1000にして10秒間計測してもデータ数が1000個しか出力されてこないのです。samplingRateを100にしようが1000にしようが、100のまま固定されている。というのが問題です。
thkana

2020/07/22 11:28

そのセンサーは秒あたりどれくらいのデータを取得できるのですか? 秒10個のデータしか取れないセンサーなら、1000個/秒とろうとしても無理、ということになりますが。
N.R

2020/07/22 11:35

返信ありがとうございます。 Bitalino向けのOpenSignalsというソフトウェアではサンプリング周波数を10〜1000まで調整することができているので、センサー自体は大丈夫だと考えています。 よろしくお願いします。
ozwk

2020/07/22 14:11 編集

nSamples を100とか1000にするとか plt.plot(data[:, 7])をとりあえず消してみるとどうなります? あとcsvの出力は1000個ピッタリですか? samplingRateを10にしたらどうなります?
N.R

2020/07/27 06:58

お返事遅れて申し訳ありません。 plt.plot(data[:, 7])を消しました。 nSampleを100・samplingRateを1000にするとcsvの出力は100個でした。 nSampleを1・samplingRateを1000にすると print(s[i]) IndexError: index 1 is out of bounds for axis 0 with size 1 というエラーがでてきます。 csvファイルは何回か計測してみましたが、997~998個出力されます。 samplingRateを10にするとcsvファイルは10個出力されてきました。 よろしくお願いします。
YT0014

2020/12/22 05:44

f.write(str(s[i])) f.write('\n') 上記のファイル書込みですが、ご提示いただいたコードでは、forのループの範囲外となっているようですが、実コードも同様でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問